gpt4 book ai didi

node.js - 在同一个应用程序(在同一条路线上)上使用 Passport Local 和 JWT Strategy

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:46 26 4
gpt4 key购买 nike

所以我的路线('/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});
}
}

欢迎提出建议...

关于node.js - 在同一个应用程序(在同一条路线上)上使用 Passport Local 和 JWT Strategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41341883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com