Node.js 将基本授权传递给 odata 服务
Node.js pass Basic Authorization to odata service
我有一个使用 Node.js 和 Express 的后端,它正在连接到 Odata 服务以检索一些数据。
这样做是使用 "odata": "^1.3.1"
: https://www.npmjs.com/package/odata/v/1.3.1
但是,该服务要求我在请求中通过基本身份验证。
我在他们的文档中没有看到任何关于如何这样做的信息。下面是我在路由中对服务的调用,如何向请求添加基本身份验证?
const express = require("express");
const router = express.Router();
const o = require('odata').o;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
router.get('/otasks', function(req, res) {
o(process.env.ODATA_SERVER)
.get()
.query()
.then(data => res.json({ payload: data }))
.catch(error => {
console.log(error);
return res.json({ payload: "error" });
});
});
module.exports = router;
Basic access authentication: When the user agent wants to send authentication credentials to the
server, it may use the Authorization header field.
Reference
根据包document,您可以提供headers给您的要求。那么你的逻辑代码就会变成这样:
...
o(process.env.ODATA_SERVER, {
headers: { 'Authorization': `Basic ${Buffer.from('username:password').toString('base64')}` },
})
...
我有一个使用 Node.js 和 Express 的后端,它正在连接到 Odata 服务以检索一些数据。
这样做是使用 "odata": "^1.3.1"
: https://www.npmjs.com/package/odata/v/1.3.1
但是,该服务要求我在请求中通过基本身份验证。
我在他们的文档中没有看到任何关于如何这样做的信息。下面是我在路由中对服务的调用,如何向请求添加基本身份验证?
const express = require("express");
const router = express.Router();
const o = require('odata').o;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
router.get('/otasks', function(req, res) {
o(process.env.ODATA_SERVER)
.get()
.query()
.then(data => res.json({ payload: data }))
.catch(error => {
console.log(error);
return res.json({ payload: "error" });
});
});
module.exports = router;
Basic access authentication: When the user agent wants to send authentication credentials to the server, it may use the Authorization header field. Reference
根据包document,您可以提供headers给您的要求。那么你的逻辑代码就会变成这样:
...
o(process.env.ODATA_SERVER, {
headers: { 'Authorization': `Basic ${Buffer.from('username:password').toString('base64')}` },
})
...