Просьба, помочь собрать пазл в голове. Заранее спасибо за любые комментарии по существу.
Аутентификация- Регистрация — Email+Пароль
- Письмо на почту с ссылкой для активации.
- Активация аккаунта — возможность входить на сайт.
- Восстановление — по Email ссылка с ключом на смену Пароля, она же дает доступ к сайту, но обнуляется при использовании.
- Запомнить меня — сохранять в Куки и в БД хеш и его время жизни, если хеш куки = БД + еще не истек срок пускаем на сайт.
- От CSRF — на каждую форму создаем уникальный токен — сравниваем пришедший токен с токеном привязанык к текущей сессии+форме
- reCAPTCHA — от подборов паролей и ботов — или нужно еще писать в логи IP + кол. попыток и банить?
--
OAuth
Получаем с FB/Google — Name, Email, provider_id, soc_id, access_token
Сохраняем в базу
Обновляем данные в профиле, если изменились.
Привязываем и существующему, если был создан ранее по обычной регистрации или через др. OAuth.
Вопросы:- Когда и где и как использовать access_token, кроме получения данных о пользователе
- Обновлять ли данные, какие или все кроме E-mail? E-mail обновлять только если нет базовой?
- Зачем заставлять делать привязку соц. профилей к аккаунту, а не делать это автоматически?
Или ввод пароля для привязки просто означает, что пользователь «понимает», что имея доступ к FB или Google аккаунту можно будет зайти не зная пароля
--
Реализация на Тостере
При логине через FB — почту не берет, через Google — подставляем в поле E-mail.
При восстановлении пароля, нужно его менять, потом с помощью нового идти на страницу и входить.
Вопросы:- Причины не дать пользователю сразу доступ к сайту (на время текущей сессии), он же уже доказал свои «права»?
- FB — есть вариант, когда почта полученная через Oauth будет не подтвержденной?