如何通过get请求对node.js Passport进行身份验证?
我用的是当地护照(https://github.com/jaredhanson/passport-local)使用node.js进行身份验证。到目前为止,这个例子很有魅力,因为用户是通过一个post webform登录的:如何通过get请求对node.js Passport进行身份验证?,node.js,middleware,Node.js,Middleware,我用的是当地护照(https://github.com/jaredhanson/passport-local)使用node.js进行身份验证。到目前为止,这个例子很有魅力,因为用户是通过一个post webform登录的: app.post('/login', passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }), function(req, res) {
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function(req, res) {
res.redirect('/');
});
不过,现在我想编写一个基于JSON的API,通过调用特定的URL对用户进行身份验证。但是,将代码块修改为app.get(…不起作用
有什么建议吗?我遇到了同样的问题,并通过将其添加到我的路由处理程序中进行登录来解决:
req.body = req.query;
也许不是完美的解决方案,但肯定比破解护照要好
还请注意,passport local中有一个未决的请求来解决此问题:也许策略对您有用
它允许使用GET请求提供的令牌对用户进行身份验证
var url = new UrlStrategy({
failRedirect : "/login",
varName : "secret"
}, function (secret, done) { // put your check logic here
if (secret == 'foo') done(null, {id:'bar'});
else done("wrong");
});
passport.use(url);
更新:似乎passport正在使用
req.body
作为用户名/密码。如果我破解passport local以使用req.query
,它就会工作。不过,这不是我喜欢的方法……这个问题已经过时了,因为它即将迎来三周年纪念日:-)无论如何,谢谢你的回答!