步骤。
1. GET https://<canvas-install-url>/login/oauth2/auth?client_id=XXX&response_type=code&redirect_uri=https://example.com/oauth_complete&state=YYY&scope=<value_1>%20<value_2>%20<value_n>
2. POST /login/oauth2/token [grant_type=authorization_code]
Response:
{
"access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
"token_type": "Bearer",
"user": {"id":42, "name": "Jimi Hendrix"},
"refresh_token": "tIh2YBWGiC0GgGRglT9Ylwv2MnTvy8csfGyfK2PqZmkFYYqYZ0wui4tzI7uBwnN2",
"expires_in": 3600
}
3. POST /login/oauth2/token [grant_type=refresh_token]
Response:
{
"access_token": "new_1/fFAGRNJru1FTz70BzhT3Zg",
"token_type": "Bearer",
"user": {"id":42, "name": "Jimi Hendrix"},
"refresh_token": "tIh2YBWGiC0GgGRglT9Ylwv2MnTvy8csfGyfK2PqZmkFYYqYZ0wui4tzI7uBwnN2",
"expires_in": 3600
}
从步骤2:
"access_token": "1/fFAGRNJru1FTz70BzhT3Zg" - using this token returns an invalid access token error
从第3步开始:
"access_token": "new_1/fFAGRNJru1FTz70BzhT3Zg_new" - works!
我的问题是
答案 0 :(得分:1)
否在使用刷新令牌并刷新时,它将生成一个新的访问令牌并附加到刷新令牌。之后,旧的访问令牌将不再起作用。
有效期是访问令牌的最大TTL,之后必须进行刷新,但没有刷新访问令牌的最低阈值。
答案 1 :(得分:1)
((我想回应您在shazin的回答中的评论。但是我没有声誉:()
AFAIK当使用刷新令牌获取新的访问令牌时,旧的访问令牌无效。
我简要查看了OAuth2规范,但找不到使用刷新令牌时旧访问令牌无效的信息。也许是因为假定刷新令牌仅在访问令牌无效时使用。
无论如何,规范中的这两个参考文献将有所帮助。