无法从github API调用获取JSON响应

时间:2019-12-29 22:42:42

标签: node.js api github fetch

@RequestMapping(value = "^(?!webjars$|actuator$).*", method = RequestMethod.GET)

我有一个客户端应用程序重定向到GitHub oAuth URL。 Github授权url重定向到我应该做的服务器。它正在传递所需的信息。上面的代码是我的服务器端代码。此代码正在对github api进行后期调用以检索访问令牌,但我没有收到JSON响应。这是我得到的答复。

require('dotenv').config();
const express = require('express');
const morgan = require('morgan');
const cors = require('cors');
const helmet = require('helmet');
const fetch = require("node-fetch");
const NODE_ENV = process.env.NODE_ENV

const app = express()

const morganOption = (NODE_ENV === 'production')
    ? 'tiny'
    : 'common';

app.use(morgan(morganOption))
app.use(helmet())
app.use(cors())

app.use(function errorHandler(error, req, res, next){
    let response
    if (NODE_ENV === 'production'){
        response = { error: { message: 'server error' } }
    } else {
        console.error(error)
        response = { message: error.message, error }
    }
    res.status(500).json(response)
})
app.get('/', (req, res) => {
    const code = req.query.code;
    const state = req.query.state;
    const url = `https://github.com/login/oauth/access_token`;
    const options = {
        method: "POST",
        headers: {
            "Accept": "application/json"
        },
        parameters: {
            "client_secret": process.env.CLIENT_SECRET,
            "client_id": process.env.CLIENT_ID,
            "state": state,
            "code": code
        }
    }
    fetch(url, options).then(res => console.log(res))
    res.send('verifying account please wait!')
})

当我使用邮递员进行邮递时,我会取回访问令牌。当我直接将URL输入浏览器时,它将下载带有访问令牌的文件。那么为什么API调用在这里失败?

0 个答案:

没有答案