使用facebook-passport时,通常要做的是redirect_uri在你使用的FacebookStrategy的构造函数中指定,如下所示:
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);
});
})
);
Run Code Online (Sandbox Code Playgroud)
然后你会设置这样的路线:
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"
}
))
Run Code Online (Sandbox Code Playgroud)
是否可以更改回调网址,使其包含传递给初始登录调用的参数的信息?
注意:这个问题更多的是为了保留我需要一段时间才能解决的信息,以避免其他人沿着相同的路径前进.
我有一个应用程序是服务器上的Node + Express + Passport和客户端上的jQuery + Backbone.js.客户端在URL中使用哈希标记,但是对于某些功能,用户登录是很重要的.
我希望可以通过URL访问该应用,例如http://mydomain.com/app#cone/waffle/flavor/mint/toppings/sprinkles:
/login则会转到然后转到请求的URL继这篇SO帖子,关于Node.js Passport的Google策略的自定义returnUrl之后 ,我就这样了
它似乎在登录后从重定向上的原始URL中删除哈希参数.
有什么方法可以在将哈希参数重定向到原始目标时保留哈希参数吗?
从这篇文章中,从请求URL获取哈希参数我得到了哈希标签在服务器上不可用的想法,这是使用哈希标签的全部要点.
所以我怀疑这是不可能的.也许以某种方式在本地缓存params并在重定向上检索它们,对[original URL minus hastags] + #use-cached-params吗?