Zajmuję się tworzeniem aplikacji internetowej, która wysyła użytkownikowi powiadomienie e-mail, aby ukończyć lekcję/samouczek. Dodałem możliwość automatycznego logowania użytkownika za pomocą linku w tym e-mailu. Ta funkcja została dodana do kilku usług w Internecie, co jest najbardziej godne uwagi, OkCupid.Najlepsze wskazówki dotyczące automatycznego logowania
Oto jak mam skonfigurować tabelę:
+----+-------------+-------------------+-----------+--------------+----------------------+
| id | key (22) | secret (40) | user_id | action | expires |
+----+-------------+-------------------+-----------+--------------+----------------------+
| 1 | IbQlQW8Dn...| hdC4dXQJUPA0... | 1 | lesson/14 | 2013-06-21 16:28:55 |
+----+-------------+-------------------+-----------+--------------+----------------------+
Gdy użytkownik odwiedza link poprzez e-mail, coś jak: http://example.com/go/IbQlQW8Dn8PNXJFFwHQxwh/hdC4dXQJUPA0pU7I6eUiXawbnobYv0iThA [http: /example.com/go/ key
/secret
]
Najpierw serwer sprawdza, czy adres URL nie wygasł w oparciu o datę w tabeli. Jeśli nie wygasł, użytkownik jest automatycznie logowany za pomocą user_id
, a następnie przekierowywany do podanego adresu URL w kolumnie action
. Użyłem dwóch oddzielnych wartości (key
& secret
) dla adresu URL, tylko po to, aby zwiększyć bezpieczeństwo (zapobiec fuskowaniu).
Teraz, ze względu na charakter strony (lekcje wideo), bezpieczeństwo nie jest wielkim problemem, ale nadal chciałbym wiedzieć, jakie najlepsze praktyki należy wziąć pod uwagę.
- Czy powinienem ograniczyć liczbę przypadków, w których link może zostać użyty?
- Aktualnie mam łącze wygasające 60 godzin (3 dni) od momentu wysłania wiadomości e-mail . Czy należy to obniżyć?
- Oczywistym dwoma rodzajami ryzyka nieautoryzowanego dostępu jest to, że ktoś przekazuje wiadomość e-mail lub ktoś uzyskuje dostęp do konta e-mail użytkownika. Coś jeszcze do rozważenia?
Dzięki za każdy wgląd w to, co powinno zostać przeniesione do innej sekcji StackExchange, proszę dać mi znać. Wiem, że widziałem w przeszłości inne najlepsze praktyki.