我使用Passport-Local(https://github.com/jaredhanson/passport-local)通过node.js进行身份验证。到目前为止,这个例子就像一个魅力,因为用户正在登录后网页形式:
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function(req, res) {
res.redirect('/');
});
但是,现在,我想编写一个基于JSON的API,通过调用特定的URL来验证用户身份。将代码块修改为app.get(…
不起作用。
有什么建议吗?
答案 0 :(得分:2)
我遇到了同样的问题,并通过将此添加到我的路由处理程序进行登录来解决它:
req.body = req.query;
也许不是完美的解决方案,但它肯定比黑客护照好。 ;)
另请注意,本地护照中有待处理的待处理请求可解决此问题:https://github.com/jaredhanson/passport-local/pull/12
答案 1 :(得分:0)
也许https://github.com/yarax/passport-url策略对您有用
它允许使用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);