OAuth for Browserless and Input Constrained Devices
OAuth 2.0 “Device Flow” расширение позволяет использовать OAuth на девайсах, которые имеют выход в интернет, но не могут открыть браузер (например, расширения для TV).
Обычно, девайс говорит пользователю открыть какую-то ссылку на стороннем девайсе (например, на телефоне через чтение QR-кода) и получает access-токен таким образом.
Authorization Request
Девайс делает запрос к серверу авторизации для получения device code параметра:
Некоторые сервера авторизации позволяют добавлять параметр scope
, который будет показан пользователю.
Сервер возвращает сссылку, куда перенаправить пользователя и user_code
для него.
Token Request
Пока пользователь не подтвердит доступ, девайс будет стучать на сервер авторизации со своим device_code
с заданным сервером interval
, пока сервер не вернет статус, отличный от error = authorization_pending
.
Пример запроса:
Если пользователь откажет в доступе, сервер вернет error = access_denied
. Если токен истек — получим error = expired_token
.
Если все ОК:
Security
user_code
должен быть не подвержен бруту, для запроса подтверждения доступа со стороны пользователя должен быть установлен rate limit.
Last updated