大佬教程收集整理的这篇文章主要介绍了angularjs – 当使用passport-http基本护照本地组合时,如何防止www-authenticate标头,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
浏览器不显示我的角度代码处理401,而是显示由WWW-Authenticate标头引起的BASIC auth对话框.
如何在使用本地策略时阻止添加标头?
或者我如何以不同的方式支持这两种机制?
我在基于Express的应用程序中使用以下路由.
api.post('/authenticate',passport.authenticate(['local','basic'],{ session: false }),function (req,res) {
这将在该URL上启用两种身份验证方法.我再说一遍,当我使用formbased使用错误的凭据时,它会向我显示基本的auth对话框(我不希望这样).
passport.use(new BasicStrategy({ realm: 'Authentication Failed. Wrong username or password.'},verifyLocalUser)); passport.use(new LocalStrategy(verifyLocalUser));
这就是我的verifyUser方法的样子……
var verifyLocalUser = function (username,password,next) { User.findOne({ username: username }).SELEct('fullname admin username password').exec(function (err,user) { if (err) { return next(err); } if (user && user.comparepasswords(password)) { return next(null,user); } else { next(null,false,{ message: 'Authentication Failed. Wrong username or password.' }); } }); }
有谁知道如何使用passport.js支持多种身份验证方法?
为了完整性,这是验证我的角度代码……
authFactory.signIn = function (username,password) { return $http.post('/api/authenticate',{ username: username,password: password }).then(function (res) { AuthToken.setToken(res.data.token); return res.data; },function (res) { console.warn(res); }); };
next(null,{ message: 'Authentication Failed. Wrong username or password.' });
你可以用这个:
cb(new YourCustomError())
并且“YourCustomError”可以有一条消息,对我来说,“YourCustomError”看起来像:
class httpError extends Error { constructor (msg = 'Invalid request',status = 400) { super(msg) this.status = status } } class Forbidden extends httpError { constructor (msg = 'Forbidden') { super(msg,403) } }
以上是大佬教程为你收集整理的angularjs – 当使用passport-http基本护照本地组合时,如何防止www-authenticate标头全部内容,希望文章能够帮你解决angularjs – 当使用passport-http基本护照本地组合时,如何防止www-authenticate标头所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。