Javascript 来自GitHub API的响应未返回具有适当作用域的访问令牌以查看私有repo
我正在获得所需的响应,但从GitHub返回的访问令牌返回时响应中没有作用域:Javascript 来自GitHub API的响应未返回具有适当作用域的访问令牌以查看私有repo,javascript,rest,api,Javascript,Rest,Api,我正在获得所需的响应,但从GitHub返回的访问令牌返回时响应中没有作用域: // githubs response { access_token: 'a2ed9606c8b06bf00a16dc34584b1509462450a4', token_type: 'bearer', scope: '' } 令牌不能像启用了作用域的个人访问令牌那样查看私有回购。我是做错了什么还是没有联系到正确的端点 // backend - Auth.js var express = req
// githubs response
{
access_token: 'a2ed9606c8b06bf00a16dc34584b1509462450a4',
token_type: 'bearer',
scope: ''
}
令牌不能像启用了作用域的个人访问令牌那样查看私有回购。我是做错了什么还是没有联系到正确的端点
// backend - Auth.js
var express = require('express');
var router = express.Router();
var fetch = require('isomorphic-fetch');
let token = null;
const createFetchOptions = (method, body = undefined) => {
const options = {
method,
headers: {
'Content-type': null,
'Accept': null,
},
};
options.headers['Content-type'] = 'application/json';
options.headers['Accept'] = 'application/json';
options.body = JSON.stringify(body);
return options;
};
const Fetcher = {
get: async (url) => {
const res =
await fetch(
url,
createFetchOptions('GET'),
);
return res;
},
post: async (url, body) => {
const res =
await fetch(
url,
createFetchOptions('POST', body),
);
return res;
},
}
router.post('/token', async (req, res) => {
const { clientId, clientSecret, sessionCode } = req.body;
const response = await Fetcher.post('https://github.com/login/oauth/access_token', {
client_id: clientId,
client_secret: clientSecret,
code: sessionCode,
});
const result = await response.json();
console.log(result)
res.json(result);
});
module.exports = router;
您提供的代码似乎缺少一个步骤,您可以通过
GEThttps://github.com/login/oauth/authorize
请求。我假设您确实在代码中的某个地方包含此调用,因为有必要接收您在帖子正文中传递的sessionCode
值https://github.com/login/oauth/access_token
请求
在任何情况下,这是您指定应用程序正在请求的步骤。请求的范围通过scope
查询参数传递,如果请求多个范围,则由空格分隔。例如,以下是对用户
和公共报告
范围的请求:
GET https://github.com/login/oauth/authorize?
client_id=...&
scope=user%20public_repo
谢谢,当react组件确实挂载时,我实际上正在将获取的结果传递给这个端点,但是您已经指出了我没有做的事情。我以前在authorize get url中只有客户机id,没有作用域。我会给它一个机会,如果它不起作用,我也会发布代码。很抱歉,我没有时间尝试它。我会在本周的某个时候更新它。真的很抱歉,我只是抽出时间来回复,这似乎已经完成了。我可以访问比以前看到的更多的内容。非常感谢您的帮助:)