При использовании facebook-паспорт обычная вещь, чтобы сделать, это указать redirect_uri
в конструкторе FacebookStrategy THST вы используете, что-то вроде этого:Можно ли динамически построить обратный вызов для facebook-pasport?
passport.use("facebook", new FacebookStrategy({
//TODO: Correctly configure me
clientID: "XXXXXXX"
, clientSecret: "XXXXXXXXX"
, callbackURL: "http://localhost:3007/auth/facebook/callback"
},
function(accessToken,refreshToken,profile,done) {
User.findByFacebookId(profile.id, function(err,user) {
if(err){ return done(err);}
if(!user){ return done(null,false)}
return done(null, user);
});
})
);
Тогда вы бы настроить маршруты, как это:
app.get('/auth/facebook/login', passport.authenticate('facebook'));
app.get('/auth/facebook/login_callback', passport.authenticate('facebook', {
successRedirect:"/login_ok.html"
, failureRedirect:"/login_failed.html"
}
))
Возможно ли изменить URL-адрес обратного вызова, чтобы он содержал информацию из параметров, переданных в первоначальный логин?
ПРИМЕЧАНИЕ. Этот вопрос больше подходит для сохранения информации, которая занимала меня некоторое время, чтобы выработать, чтобы другие не сходили по тем же путям.
Спасибо, что разместили это, это было очень полезно. Я сделал то же самое, и это сработало. Одна вещь, которую я заметил при использовании динамических обратных ссылок, - это то, что не требуется устанавливать callbackURL при настройке новой FacebookStrategy (...). –
отличная возможность. Я не уверен, что вы можете сделать это просто для Twitter и Google, но если нет, есть хорошее решение [здесь] (http://stackoverflow.com/questions/9885711/custom-returnurl-on-node-js -passports-google-strategy) для тех, кто использует эти услуги oauth. –
Можно ли использовать строку запроса, например req.query.xxx, в url вместо param? Я всегда получаю недопустимый URI. – OMGPOP