2

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

Мне удалось настроить конечную точку для создания токенов доступа с использованием типа разрешения пароля. Это, когда кто-то делать 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}" 
Смежные вопросы