如何通过grantOfflineAccess从response_code返回refresh_token
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过grantOfflineAccess从response_code返回refresh_token相关的知识,希望对你有一定的参考价值。
我对invalid_grant问题感到震惊。我参考了gapi doc并实现了如下的流程,
var authorisationRequestData =
'client_id': clientId,
'scope': scopes,
'immediate': immediate,
prompt: 'consent',
access_type: 'offline',
include_granted_scope: true,
const authInstance = gapi.auth2.getAuthInstance();
authInstance.grantOfflineAccess(authorisationRequestData)
.then((res) =>
console.log(gapi.auth.getToken());
var all_token = JSON.stringify(gapi.auth.getToken());
console.log("Token =" + all_token);
console.log(res);
console.log(res.code);
).catch(error =>
console.log(error);
);
我从上面的实现中获取访问令牌和response_code,并能够针对用户创建日历事件。但是在1小时之后,它给出了我的错误,如“,错误:invalid_grant,代码:400”。由grantOfflineAccess返回,如“4 / -QA8fj7FyvcPzlVwsapQwyqyKJs0MwkQlNdGhACVgOx3YSP5JamyEplViIx-uSV3JeAHrp9n0RZC0FMSX7IwAQk”
答案
您从响应中获得的代码是您的服务器应为Access Token
和Refresh Token
交换的一次性代码。请参考this。
在客户端应用程序上存储refresh_token不是最好的做法,因为它不受保护。如果您只有客户端应用程序,我建议您关注link。
希望能帮助到你。
以上是关于如何通过grantOfflineAccess从response_code返回refresh_token的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 re() 从使用 scrapy 的 javascript 变量中提取数据?