2012·federation·RFC 6749 / 7636
Modern

OAuth 2.0 (+PKCE)

Делегированный доступ. Auth Code + PKCE — стандарт для SPA и mobile.

Плюсы
  • +Гибкие гранты
  • +Доступ без шеринга пароля
Минусы
  • Лёгко неправильно сконфигурировать
  • Сам по себе не аутентификация
OAuth 2.0 Authorization Code + PKCE
UserSPAAuthServerResourceverifier ← rand; challenge=S256(verifier)302 → /authorize?…&code_challenge=…login + consent302 → cb?code=…&state=…POST /token (code + verifier)S256(verifier) == challenge?access_token + refresh + id_tokenGET /api + Authorization: Bearer200 data
  1. 1.SPA SPAverifier ← rand; challenge=S256(verifier)
  2. 2.SPA User302 → /authorize?…&code_challenge=…
  3. 3.User AuthServerlogin + consent
  4. 4.AuthServer SPA302 → cb?code=…&state=…
  5. 5.SPA AuthServerPOST /token (code + verifier)
  6. 6.AuthServer AuthServerS256(verifier) == challenge?
  7. 7.AuthServer SPAaccess_token + refresh + id_token
  8. 8.SPA ResourceGET /api + Authorization: Bearer
  9. 9.Resource SPA200 data
OAuth 2.0 Authorization Code + PKCE

Полный цикл: верификатор → challenge → /authorize → /token → /userinfo.

Network · DevTools
Запусти демо — сюда упадут все запросы.
Выбери запрос слева, чтобы посмотреть детали.