Javascript 来自GitHub API的响应未返回具有适当作用域的访问令牌以查看私有repo

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

我正在获得所需的响应,但从GitHub返回的访问令牌返回时响应中没有作用域:

// 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,没有作用域。我会给它一个机会,如果它不起作用,我也会发布代码。很抱歉,我没有时间尝试它。我会在本周的某个时候更新它。真的很抱歉,我只是抽出时间来回复,这似乎已经完成了。我可以访问比以前看到的更多的内容。非常感谢您的帮助:)