我在SSO方案中,而我的 express 应用会收到令牌身份验证请求,然后需要从另一台服务器获取具有相同令牌的数据。
如何使用中间件自动执行此过程?
基本解决方案 每个请求都设置令牌
var ApiService = require('ApiService.js');
var apiService = new ApiService();
router.route('/')
.get(function (req, res, next) {
// getting the token and set to for the api library
apiService.setToken(req.get('Authorization'));
apiService.request({
url: 'route-to-data',
method: 'get'
})
.then(function (response) {
//send data back
})
.catch(function (response) {})
})
快速中间件 使用locale将apiservice与用户令牌一起存储
var ApiService = require('../apiService/ApiService.js');
var apiService = new ApiService();
var TokenForwarder = function (req, res, next) {
apiService.setToken(req.get('Authorization'));
res.locals.apiService = apiService;
next();
};
module.exports = TokenForwarder;
我不太喜欢这个解决方案,有更好的方法吗?