我正在玩通行证,并以这种方式配置我的 twitter 登录:
passport.use(new TwitterStrategy({
consumerKey: '*****',
consumerSecret: '*****',
callbackURL: "http://blabla/callback"
},
function(token, tokenSecret, profile, done) {
done(null, profile)
}
));
我希望能够在运行时根据登录的用户配置以下值:(consumerKey, consumerSecret, callbackURL)。也就是说,每个用户都将拥有他们需要在 Twitter 上注册的 Twitter 应用程序。有什么建议吗?
最佳答案
无需使用 passport.use()
提前注册策略,策略可以直接传递给 authenticate()
(而不是传递策略名称)。
例如:
function login(req, res, next) {
var user = req.user;
var consumerKey = getConsumerKeyForUser(user);
// Create a strategy instance specifically for this user.
var strategy = new TwitterStrategy({ consumerKey: consumerKey }, ...);
// Authenticate using the user-specific strategy
passport.authenticate(strategy)(req, res, next);
}
可以在此处找到有关此技术的更多信息:https://medium.com/passportjs/authenticate-using-strategy-instances-49e58d96ec8c关于javascript - 如何动态配置 Passportjs 策略?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43072392/