我正在尝试将状态参数发送到Oauth,然后在回调中捕获它们,但我无法使它工作。那么passportjs支持这样的功能吗?
我的想法是将一个id作为状态参数发送到Oauth然后在回调上,这取决于发送回我的app的状态参数的id我想做一个正确的重定向。
在Twitter策略中,我启用了
passReqToCallback: true,
state: true
我的请求应如下所示:
app.get('/auth/twitter/:gameId/:url',
function(req, res){
try {
var json = JSON.stringify({gameId: req.params.gameId, url: req.params.url});
var encodedValues = base64url(json);
console.log('encodedValues:'+encodedValues)
passport.authenticate('twitter', {state:encodedValues})
}catch (e){
console.log(e);
}
}
);
然后回调
app.get('/auth/twitter/callback', passport.authenticate('twitter', function(req, res, next) {
try{
//get the state params from the res uri/body
//decode the state params
//redirect depending on the state.gameId
}catch(e){
console.log('twitter exception:'+e);
}}));
我已经知道我可以在会话中保存id,但是我想通过从url传递此信息来确定是否存在会话更少的方法,因为它不敏感。
由于