Javascript GitHub OAuth应用程序-获取令牌

Javascript GitHub OAuth应用程序-获取令牌,javascript,github,web,fetch,github-api-v3,Javascript,Github,Web,Fetch,Github Api V3,我有一个简单的web应用程序,我正在localhost上测试(使用http服务器),在其中,我尝试按照以下步骤对其进行授权 我能够重定向到GitHub页面,这样用户就可以登录到那里,并获取从GitHub返回的临时代码作为查询参数 然而,我无法获取auth令牌,因为每次我发送一个包含所有必需数据的POST请求时,我都会收到错误消息 我使用的代码是: const getGitHubToken = async code => { return await fetch(authData.a

我有一个简单的web应用程序,我正在localhost上测试(使用http服务器),在其中,我尝试按照以下步骤对其进行授权

我能够重定向到GitHub页面,这样用户就可以登录到那里,并获取从GitHub返回的临时代码作为查询参数

然而,我无法获取auth令牌,因为每次我发送一个包含所有必需数据的POST请求时,我都会收到错误消息

我使用的代码是:

const getGitHubToken = async code => {
    return await fetch(authData.accessTokenURL, {
        method: 'POST',
        body: {
            client_id: authData.client_id,
            client_secret: authData.client_secret,
            code
        },
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        }
    });
};
因此,我的问题是:

  • 为什么不起作用
  • 在客户端保留客户端id和客户端机密是否安全
  • 当我的目标是创建一个能够查询GitHub API(一般统计数据、公共回购)的应用程序时,如果应用这种方法是个好主意,有什么建议吗
在客户端以明文形式保存您的客户id和客户机密是不安全的,任何用户都可以窃取它并创建一个应用程序,假装它是您的应用程序。此外,此恶意应用程序还将自动访问您的应用程序可以访问的所有内容。您似乎没有通过此操作所需的
状态request@AmanB据我所知,
状态
是可选的,只有
客户端id
client\u secret
code
是必需的。