首页 > 解决方案 > 内容类型与 JSON 不兼容

问题描述

使用以下代码,我尝试accessToken使用 node.js 中的 simple-oauth2 库创建一个。我有 server.js 和 app.js 文件。问题是每次我尝试调用该getToken方法时都会返回以下错误Content-type is not JSON compatible。我/token用邮递员调用请求Content-Type设置为的端点application/json

有没有人遇到过这个问题?

服务器.js

'use strict';

const app = require('express')()
const bodyParser = require('body-parser')

app.use(bodyParser.json())

const port = 3000;

module.exports = (cb) => {

app.listen(port, (err) => {
    if (err) return console.error(err);

    console.log(`Express server listening at http://localhost:${port}`);

    return cb({
        app
    });
});
};

应用程序.js

const createApplication = require('./server');
const simpleOauthModule = require('simple-oauth2');
require('dotenv').config()

const credentials = {
    client: {
        id: process.env.CLIENT_ID,
        secret: process.env.CLIENT_SECRET
    },
    auth: {
        tokenHost: 'http://localhost:3000/test'
    }
};

createApplication(({ app }) => {

app.post('/token', async (req, res) => {
    const oauth2 = simpleOauthModule.create(credentials);

    var contype = req.headers['content-type']; // <-- application/json

    const tokenConfig = {
        username: "test",
        password: "1234"
    };

    try {
        const result = await oauth2.ownerPassword.getToken(tokenConfig); //Error occuress
        const accessToken = oauth2.accessToken.create(result);

        console.log('Access Token: ', accessToken);
    } catch (error) {
        console.log('Access Token Error', error.message);
    }
});

app.post('/test', async (req, res) => {

});
});

标签: javascriptnode.jsjsonexpressoauth-2.0

解决方案


推荐阅读