Создайте новый токен доступа, используя токен обновления, используя thephpleague / oauth2-server

Я сталкиваюсь с некоторыми проблемами, чтобы обдумать oAuth 2.0. В частности, thephpleague / oauth2-сервер реализация.

Мне удалось настроить конечную точку для создания токенов доступа с использованием типа предоставления пароля. Это когда кто-то делает POST /authони получают следующий ответ:

{
"access_token": "hleVw03Fx4hVsaCqEmFqcXeks0hsDTkNSxMN17NR",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "GD8kT7JfGULhUKSTSBsF7AO6NaIXrqPS0dlyQjTm"}

Теперь я хочу создать новый токен, когда access_token истекает Я понимаю, что я должен использовать refresh_token попросить свежий новый токен. Однако я не нашел никакой документации для начала.

2

Решение

Вы можете использовать тип Refresh Grant, чтобы получить новый токен доступа. Это стандартизированный поток, который описан в спецификации здесь: https://tools.ietf.org/html/rfc6749#section-6. Пример запроса к конечной точке токена (взятый из спецификации) будет выглядеть так:

POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA

В этом случае клиент аутентифицирует себя с помощью базовой аутентификации в конечной точке токена, используя client_id а также client_secret, В командной строке cURL это будет выглядеть так:

curl -u "${CLIENT_ID}:${CLIENT_SECRET}" -d "grant_type=refresh_token&refresh_token=${REFRESH_TOKEN}"
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]