Exi*_*tos 6 node.js express passport.js
我认为这样的问题从来没有使我烦恼。似乎确实有0个地方需要寻找或解决。我要做的就是获取护照来拦截对“ / login”和“ / getloginStatus”的调用。
登录时,我只想使用Json对象作为{username / password}的参数。登录后,如果用户在其浏览器中具有身份验证票证,我只想返回true / false。
这就是我所拥有的,但丝毫不起作用,一半的问题似乎是我的本地策略实施从未被调用过。
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('this NEVER gets called');
}
));
app.post('/api/authentication/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
console.log('this does get called but so what?');
if (err) { return next(err); }
if (!user) { return res.redirect('/login'); }
req.logIn(user, function(err) {
console.log('this does get called but so what am I logged in?');
next();
});
})(req, res, next);
});
app.get('/api/authentication/getloginStatus', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
//what do I return here? !!!?
})(req, res, next);
});
Run Code Online (Sandbox Code Playgroud)
任何帮助,不胜感激!
Passport.js 使用request.user当前经过身份验证的用户填充。因此,要获取有关当前用户的信息,您可以这样做
app.get('/api/authentication/getloginStatus', function(request, response) {
if(request.user) {
response.json(request.user);
} else {
response.status(401); //Authorization required
response.json({"error":"Authorization required!", "code":401"})'
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |