如何通过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 TokenRefresh Token交换的一次性代码。请参考this

在客户端应用程序上存储refresh_token不是最好的做法,因为它不受保护。如果您只有客户端应用程序,我建议您关注link

希望能帮助到你。

以上是关于如何通过grantOfflineAccess从response_code返回refresh_token的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块 re 从数据框列中删除特殊字符? [复制]

如何使用 re() 从使用 scrapy 的 javascript 变量中提取数据?

Re:从零开始的二项式反演

perl:如何从预编译版本中获取原始正则表达式?

如何从通过 Moya.Response 查询返回的对象解析嵌套的 JSON 数组

re模块