OAuth
Содержание
Зачем это нужно?
- Меньше беспокойства о авторизации, так как это передаеться на плечи других сервисов (Google, Facebook, Github, ...)
- Меньше беспокойства для пользователей
- Не надо заполнять форм что бы зарегаться на вашем сайте
- Не надо иметь много аккаунтов чтобы помнить пароль
Шаги аутентификации и авторизации
Клинет попадает на страницу авторизации(логин) и видит кнопки для входа через Google, Facebook, Github, etc.
После нажатия на одну из кнопок, пользователю показываеться окно, в котором указан сервис(Google, Facebook, ...) который он выбрал и запрашываемые данные с вашего приложение.
Пользователь может как подтвердить, так и отказать в этом окне.
После подтверждения мы получаем данны от провайдера(Google Facebook, ...) и дальше если находим/добавляем пользователя в БД и создаем токен(JWT) который создаеться с секретом приложения.
Клиент получает токен ставит в куки по инструкции сервера(Set-Cookie). Если получает данные о пользователе и устанавливает их в
localStorage
, если они пришли. Если кук не будет, то клиент каждый раз должен будет проходить авторизацию.При каждом запросе клиента, сервер вынимает из кук
access_token
и проверяет(jwt.verify), если удалось расшифровать токен с помощью секрета сервера, то пользователь наш. Тогда мы можем достать инфу из токена и дать пользователю запрашиваемую инфу.