2015-09-25 35 views
11

Używam uwierzytelniania w języku Lighvel 5 i kątowym js oraz JWT do rejestrowania i rejestrowania moich użytkowników. Ale nic nie wspomnę o ułatwienie użytkownikom z zapamiętywania funkcji, a także umożliwić użytkownikom resetowanie hasła w przypadku zapomnienia hasła.Zapamiętaj użytkowników i zapomniałem hasła Funkcjonalność w Laravel 5.1 i Angular JS (uwierzytelnianie JWT)

Bardzo dużo się dowiadywałem i nie znalazłem dokładnie tego, czego potrzebuję, ale odpowiedź w poniższym linku jest pomocna, ale nie jest wystarczająca, aby kontynuować. Laravel 5 Password Reset with Angular View

Prosimy o podanie wszelkich informacji i linków, które byłyby pomocne. Z góry dziękuję! :)

+0

Hasło Odpoczynek jest w dużej różnorodności, możesz być bardziej szczegółowy, co było nieadekwatne w związku z pytaniem, które łączysz, dzięki czemu możemy być bardziej konkretni bez odpowiedzi. – Alex

Odpowiedz

4

Aby odpowiedzieć z perspektywy JWT.

Pamiętaj, że zasadniczo pyta użytkownika, jak długo chce się zalogować. W zależności od wymagań bezpieczeństwa i typowych wzorców użytkowania użytkowników krótkie sesje często trwają od 15 minut do sesji przeglądarki. Długie sesje (wybierając opcję Zapamiętaj mnie) mogą być dowolne od 24 godzin do roku.

Wydawca JWT może ustawić roszczenie exp (czas wygaśnięcia tokena) inaczej, w zależności od wyboru przez użytkownika pola "Zapamiętaj mnie".

Jeśli zamierzasz ustawić opcję "Zapamiętaj mnie" tak, aby była dłuższa niż jedna sesja przeglądarki, najprostszym sposobem jest zapisanie tokena w pliku cookie. Oznacza to, że plik cookie musi również mieć ustawione następujące właściwości: httponly, secure i expires (z tym samym czasem wygaśnięcia, co żądanie exp z tokena).

Reszta Hasło implementacje są w wielu kształtach i rozmiarach w zależności od wymagań. Nie są one bezpośrednio związane z JTT, ponieważ pochodzą sprzed wystawcy JWT wydadzą token.

+0

Dzięki za odpowiedź @Alex. –

1

Pytasz o coś, co trzeba będzie załatwić specjalnie dla twojej sprawy. Tak jak większość systemów "zapamiętaj mnie" działa (w tym Laravel) poprzez przechowywanie pliku cookie na urządzeniu użytkownika. Ten plik cookie jest następnie wykorzystywany do automatycznego uwierzytelniania po powrocie użytkownika. JWT jest inny, ponieważ dostajesz token, a nie plik cookie, który przekazujesz z powrotem do serwera w nagłówku. Oba są w gruncie rzeczy ciągami liter i cyfr, ale musisz w szczególności przechowywać token JWT w przeglądarce użytkownika, aby móc korzystać z funkcji "zapamiętaj mnie". Możesz to zrobić w aplikacji Angular, używając localStorage lub innej podobnej praktyki front-end.

W przypadku zapomnianego hasła można przesłać te same pola formularza, które są domyślne dla Laravel i po prostu zastąpić sposób, w jaki PasswordController zwraca odpowiedź; w tym przypadku potrzebna jest odpowiedź JSON, a nie przekierowanie.

+0

Dzięki za odpowiedź @Adam –