使用phpleague / oauth2-server使用刷新令牌创建一个全新的访问令牌

时间:2015-04-16 17:41:27

标签: php laravel-5 oauth-2.0 restful-authentication thephpleague

我正面临着一些问题,包括oAuth 2.0。特别是thephpleague/oauth2-server实施。

我设法使用密码授予类型设置端点来创建访问令牌。这是,当有人做POST /auth时,他们得到以下答案:

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

我现在要做的是在access_token到期时生成新令牌。我知道我应该使用refresh_token来请求新的令牌。但是,我没有找到任何文档。

1 个答案:

答案 0 :(得分:2)

您可以使用“刷新授权”类型来获取新的访问令牌。这是一个标准化的流程,在此处的规范中描述: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_idclient_secret使用基本身份验证对令牌端点进行身份验证。在命令行cURL中,它看起来像:

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