/ / laravel: Formularz logowania na stronie innej niż Laravel - javascript, php, laravel, uwierzytelnianie

laravel: Formularz logowania na stronie innej niż Laravel - javascript, php, laravel, authentication

Buduję aplikację internetową, która jestw towarzystwie małej strony internetowej korzystającej z Jekyll. Powodem tego jest fakt, że strona internetowa prawie nigdy się nie zmieni, dzięki czemu jest w stanie działać szybko (czysty HTML + CSS i niektóre JavaScript) i częściowo niezależna od aplikacji.

Witryna Jekyll jest umieszczana w folderze publicznym Laravel i działa dobrze. W tej chwili użytkownik, który chce korzystać z naszej aplikacji, musi odwiedzić domyślną trasę uwierzytelniania Laravel do logowania (/ login).

Chciałbym dodać formularz logowania na jednej ze stron mojej witryny, który umożliwia użytkownikowi logowanie się bez wcześniejszego odwiedzania aplikacji.

Oczywiście próbowałem dodać prosty formularz iwysłanie go do / login (domyślna trasa Laravela), ale to nie zadziała, ponieważ Laravel oczekuje ustawienia tokena csrf. Wiem, że Laravel ustawia plik cookie zawierający zaszyfrowany token, ale nie jestem pewien, czy (i jak) mogę tego użyć.

Czy istnieje (prosty) sposób dodania formularza logowania do strony NON-Laravel? I czy jest to możliwe przy użyciu tylko HTML i JavaScript (może przy użyciu Ajax)?

Odpowiedzi:

3 dla odpowiedzi № 1

Masz kilka opcji.

1- Najtańsza opcja: wyłącz csrf_token tylko na trasie logowania. Niektórzy to zalecą, inni powiedzą, że nie powinieneś. Możesz szukać w Internecie, czy chcesz iść tą drogą, czy nie.

2- Złóż zapytanie ajax GET na trasę, która zwróci ci csrf_token, abyś mógł użyć go w swoim formularzu. W kontrolerze Laravel po prostu zwracasz token sesji

public function getToken() {
return session()->token();
}

3 - Przejdź do drogi paszportowej dla żądań API takich samych jak OSO. https://laravel.com/docs/5.4/passport