Node.js 将简单OAuth2与NodeJS一起使用时,内容类型与JSON不兼容
我希望使用Azure AD进行身份验证 server.jsNode.js 将简单OAuth2与NodeJS一起使用时,内容类型与JSON不兼容,node.js,azure,Node.js,Azure,我希望使用Azure AD进行身份验证 server.js const express = require("express"); const app = express(); const port = process.env.PORT || 5000; var bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json())
const express = require("express");
const app = express();
const port = process.env.PORT || 5000;
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get("/authorize", async (req, res) => {
const credentials = {
client: {
id: "xxx",
secret: "xxx"
},
auth: {
tokenHost:
"xxx"
}
};
const oauth2 = require("simple-oauth2").create(credentials);
const tokenConfig = {
scope: "<scope>"
};
const httpOptions = {};
try {
const result = await oauth2.clientCredentials.getToken(
tokenConfig,
httpOptions
);
const accessToken = oauth2.accessToken.create(result);
} catch (error) {
console.log("Access Token error", error.message);
}
const express=require(“express”);
常量app=express();
const port=process.env.port | 5000;
var bodyParser=require(“主体解析器”);
use(bodyParser.urlencoded({extended:false}));
use(bodyParser.json());
app.get(“/authorize”),异步(请求,res)=>{
常量凭据={
客户:{
id:“xxx”,
秘密:“xxx”
},
认证:{
令牌主机:
“xxx”
}
};
const oauth2=require(“simple-oauth2”).create(凭证);
常量令牌配置={
范围:“”
};
常量httpOptions={};
试一试{
const result=await oauth2.clientCredentials.getToken(
令牌配置,
httpOptions
);
const accessToken=oauth2.accessToken.create(结果);
}捕获(错误){
log(“访问令牌错误”,error.message);
}
我遵循了存储库提供的示例,但我得到了一个错误访问令牌错误内容类型与JSON不兼容
如何使用NodeJS和简单的OAuth2在Microsoft Azure上授权我的OAuth2?我也遇到了这个错误。在我的例子中,原因是OAuth2服务器使用text/plain的内容类型头进行响应,即使主体实际上是JSON 将simple-oauth2的http选项中的“json”配置选项更改为“force”,我就解决了这个问题。我发现: 请确保在示例中更改了三个URL。在没有
{json:true}
此解决方案不同于尝试将这一行去掉
app.use(bodyParser.json());
我也有同样的问题,但我没有使用bodyParser。如果你想使用node.js获取Azure AD访问令牌,你可以使用sdk。有关更多详细信息,请参阅你是否解决了错误?我也有同样的问题。.你能给我看一下实际的代码吗?提前谢谢!我通过将其更改为true来修复它。。getToken(tokenConfig,{json:true})