gpt4 book ai didi

node.js - 如何通过.authenticate将变量传递给 Passport 策略?

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:30 27 4
gpt4 key购买 nike

这是我当前的 Passport 身份验证机制

const requireAuth = passport.authenticate('jwt', { session: false });

我的策略定义如下:

passport.use('jwt', new Strategy(options, (payload, done) => {
// my logic
}))

现在,我需要将 requireAuth 更改为:

function requireAuth(allowProxyLogin) {
return passport.authenticate('jwt', { session: false })
}

现在,我需要将此 allowProxyLogin 变量传递给我的策略。我怎样才能做到这一点,同时对我的策略进行最小的改变?

编辑:

郑重声明,我将 requireAuth 函数更改为:

function requireAuth(allowProxyLogin) {
return [
(req, res, next) => {
req.allowProxyLogin = !!allowProxyLogin;
return next();
},
passport.authenticate('jwt', { session: false, passReqToCallback: true }),
];
}

为了更轻松地实现@Saurabh 的答案。

最佳答案

我认为你可以做的是在调用身份验证时传递此选项“passReqToCallback”

function requireAuth(allowProxyLogin) {
return passport.authenticate('jwt', { session: false, passReqToCallback: true })
}

这会将请求传递给您的验证回调,如下所示

passport.use('jwt', new Strategy(req, options, (payload, done) => {
// my logic
}))

现在您可以添加变量 allowProxyLogin 来请求并在验证回调中访问它。

关于node.js - 如何通过.authenticate将变量传递给 Passport 策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55920353/

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