我有这样一个快速路线:
app.get('/',auth.authOrDie,function(req,res) { res.send(); });
其中authOrDie函数定义如下(在我的auth.js模块中):
exports.authOrDie = function(req,res,next) { if (req.isAuthenticated()) { return next(); } else { res.send(403); } });
现在,当用户未经过身份验证时,我想验证http请求是否具有授权(基本)标头.为此,我想使用伟大的连接中间件basicAuth().
如您所知,Express建立在Connect之上,因此我可以使用express.basicAuth.
basicAuth通常用于:
app.get('/',express.basicAuth(function(username,password) { // username && password verification... }),res) { res.send(); });
但是,我想在我的authOrDie函数中使用它:
exports.authOrDie = function(req,next) { if (req.isAuthenticated()) { return next(); } else if { // express.basicAuth ??? ****** } else { res.send(403); } });
******如何使用良好的参数调用basicAuth函数(req?res?next?…).
谢谢.
解决方法
调用express.basicAuth函数会返回要调用的中间件函数,因此您可以像这样直接调用它:
exports.authOrDie = function(req,next) { if (req.isAuthenticated()) { return next(); } else { return express.basicAuth(function(username,password) { // username && password verification... })(req,next); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。