OAuth

Содержание


Зачем это нужно?

  • Меньше беспокойства о авторизации, так как это передаеться на плечи других сервисов (Google, Facebook, Github, ...)
  • Меньше беспокойства для пользователей
    • Не надо заполнять форм что бы зарегаться на вашем сайте
    • Не надо иметь много аккаунтов чтобы помнить пароль

Шаги аутентификации и авторизации

  1. Клинет попадает на страницу авторизации(логин) и видит кнопки для входа через Google, Facebook, Github, etc.

  2. После нажатия на одну из кнопок, пользователю показываеться окно, в котором указан сервис(Google, Facebook, ...) который он выбрал и запрашываемые данные с вашего приложение.

  3. Пользователь может как подтвердить, так и отказать в этом окне.

  4. После подтверждения мы получаем данны от провайдера(Google Facebook, ...) и дальше если находим/добавляем пользователя в БД и создаем токен(JWT) который создаеться с секретом приложения.

  5. Клиент получает токен ставит в куки по инструкции сервера(Set-Cookie). Если получает данные о пользователе и устанавливает их в localStorage, если они пришли. Если кук не будет, то клиент каждый раз должен будет проходить авторизацию.

  6. При каждом запросе клиента, сервер вынимает из кук access_token и проверяет(jwt.verify), если удалось расшифровать токен с помощью секрета сервера, то пользователь наш. Тогда мы можем достать инфу из токена и дать пользователю запрашиваемую инфу.