在同一个应用程序(在同一条路线上)上使用 Passport Local 和 JWT Strategy
Use Passport Local & JWT Strategy on same app (on same route)
所以我的路线('/dash') 看起来像这样:
// validating using JWT
router.post('/dash', passport.authenticate('jwt', {session: false}), function (req, res) {
res.json({'success': true});
});
// validating using LOCAL
router.post('/dash', authenticationHelpers.isAuth, function (req, res) {
res.json({'success': true});
});
// authenticationHelpers.isAuth
function isAuth(req, res, next) {
if (req.isAuthenticated())
return next();
res.status(401).json({"authenticated": false});
}
那么,如何在同一个应用程序(同一条路线)上同时使用 本地和 JWT 策略?我如何将它们结合起来。
注意:Web 应用是 Local,移动应用是 JWT
终于想通了。
已修改 isAuth 函数:
function isAuth(req, res, next) {
if (req.headers.authorization) {
passport.authenticate('jwt', {session: false}, function (err, user, info) {
if ((!err || !info) && user) {
req.user = user;
return next();
}
res.status(401).json({authenticated: false, message: "Login expired."});
})(req, res, next);
} else {
if (req.isAuthenticated())
return next();
res.status(401).json({authenticated: false});
}
}
欢迎提出建议...
所以我的路线('/dash') 看起来像这样:
// validating using JWT
router.post('/dash', passport.authenticate('jwt', {session: false}), function (req, res) {
res.json({'success': true});
});
// validating using LOCAL
router.post('/dash', authenticationHelpers.isAuth, function (req, res) {
res.json({'success': true});
});
// authenticationHelpers.isAuth
function isAuth(req, res, next) {
if (req.isAuthenticated())
return next();
res.status(401).json({"authenticated": false});
}
那么,如何在同一个应用程序(同一条路线)上同时使用 本地和 JWT 策略?我如何将它们结合起来。
注意:Web 应用是 Local,移动应用是 JWT
终于想通了。
已修改 isAuth 函数:
function isAuth(req, res, next) {
if (req.headers.authorization) {
passport.authenticate('jwt', {session: false}, function (err, user, info) {
if ((!err || !info) && user) {
req.user = user;
return next();
}
res.status(401).json({authenticated: false, message: "Login expired."});
})(req, res, next);
} else {
if (req.isAuthenticated())
return next();
res.status(401).json({authenticated: false});
}
}
欢迎提出建议...