我有一个简单的 Web 应用程序,我正在 localhost(使用 http-server)上测试,我正在尝试按照GitHub 教程对其进行授权。
我能够重定向到 GitHub 页面,因此用户可以在那里登录并获取从 GitHub 返回的临时代码作为查询参数。
但是我无法获得身份验证令牌,因为每次我发送一个包含所有必需数据的 POST 请求时,我都会收到CORB错误。
我用来执行此操作的代码:
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'
}
});
};
所以我的问题是:
- 为什么它不工作
- 在客户端保留 client_id 和 client_secret 是否安全
- 如果在我的目标是创建一个能够查询 GitHub API(一般统计数据、公共存储库)的应用程序时应用这种方法是个好主意,有什么建议,我怎样才能做得更好?