Google OAuth,刷新访问令牌(授予类型)

问题描述 投票:0回答:1

我正在尝试刷新通过 Google OAuth 同意屏幕获得的令牌,而找到这方面的文档几乎是不可能的......

当我提出下面的请求时,我得到回复

Status Code: 400 - Bad Request

Error: "unsopported_grant_type"

需要帮助解决这个问题。

const URL = 'https://accounts.google.com/o/oauth2/token';

const headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
};

const payload = {
  client_id: process.env.GOOGLE_AUTH_CLIENT_ID,
  client_secret: process.env.GOOGLE_AUTH_CLIENT_ID,
  refresh_token: process.env.REFRESH_TOKEN,
  grant_type: 'refresh_token',
};

console.log('payload', payload);

const res = await fetch(URL, { method: 'post', headers, payload });
console.log('res', res);
const data = await res.text();
console.log('data', data);
google-oauth
1个回答
0
投票

在你的展示脚本中,做如下修改怎么样?

在您的脚本中,

client_secret: process.env.GOOGLE_AUTH_CLIENT_ID,
处,
GOOGLE_AUTH_CLIENT_ID
(客户端 ID?)用作客户端密钥。请注意这一点。

修改后的脚本:

const URL = 'https://accounts.google.com/o/oauth2/token';
const headers = { 'Content-Type': 'application/x-www-form-urlencoded' };
const payload = {
  client_id: process.env.GOOGLE_AUTH_CLIENT_ID,
  client_secret: process.env.GOOGLE_AUTH_CLIENT_SECRET, // Modified
  refresh_token: process.env.REFRESH_TOKEN,
  grant_type: 'refresh_token',
};
console.log('payload', payload);
const res = await fetch(URL, { method: 'POST', headers, body: new URLSearchParams(payload) }); // Modified
console.log('res', res);
const data = await res.text();
console.log('data', data);
  • 当我使用我的值测试这个修改后的脚本时,我确认可以获得访问令牌。

  • 在此修改中,

    process.env.GOOGLE_AUTH_CLIENT_SECRET
    用于检索客户端密钥。请根据您的实际情况修改
    GOOGLE_AUTH_CLIENT_SECRET

  • 并且,需要将客户端 ID、客户端密钥、刷新令牌和授权类型的值作为表单数据发送。

注:

  • 在此修改中,它假设您的客户端 ID、客户端密钥和刷新令牌是用于检索访问令牌的有效值。请注意这一点。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.