Gal*_*aim 16 node.js express passport.js
我正在按照这个例子来设置FacebookStrategy - https://github.com/jaredhanson/passport-facebook/blob/master/examples/login/app.js
我想动态设置callbackURL,即:用户访问/ posts/34所以回调将是/ posts/34/callback
我怎样才能实现这样的目标?
Gal*_*aim 11
我找到了解决方案,auth重定向路由和回调路由都应该用函数(req,res,next)包装passport.authenticate().
我按照http://passportjs.org/guide/authenticate/中的示例进行了自定义回调
以及https://github.com/jaredhanson/passport-facebook/issues/2中有关自定义callbackURL 的注释
我使用这个解决方案,很容易.我保存了会话中的最后一个网址并在之后收集它.如果你直接将回调网址传递给fb,你需要允许所有不同的路由,这是一个非常hazzle.
app.get '/auth/facebook/', routesService.clean, (req, res, next) ->
req.session.redirect = req.query.redirect if req.session? && req.query.redirect?
passport.authenticate('facebook', { scope: ['user_friends'] }) req, res, next
return
app.get '/auth/facebook/callback', passport.authenticate('facebook', failureRedirect: '/login'), (req, res) ->
# Successful authentication, redirect home.
if req.session?.redirect?
rediredUrl = req.session.redirect
delete req.session.redirect
res.redirect '/#!'+ rediredUrl
else
res.redirect '/'
return
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9161 次 |
| 最近记录: |