この例に従って FacebookStrategy をセットアップしています - https://github.com/jaredhanson/passport-facebook/blob/master/examples/login/app.js
callbackURL を動的に設定したい、つまり、ユーザーが /posts/34 にアクセスすると、コールバックは /posts/34/callback になります
どうすればこのようなことを達成できますか?
この例に従って FacebookStrategy をセットアップしています - https://github.com/jaredhanson/passport-facebook/blob/master/examples/login/app.js
callbackURL を動的に設定したい、つまり、ユーザーが /posts/34 にアクセスすると、コールバックは /posts/34/callback になります
どうすればこのようなことを達成できますか?
認証リダイレクト ルートとコールバック ルートの両方で、passport.authenticate() を function(req, res, next) でラップする必要があります。
カスタムコールバックのhttp://passportjs.org/guide/authenticate/の例に従いました
カスタム コールバックURL のhttps://github.com/jaredhanson/passport-facebook/issues/2のコメント
私はこのソリューションを使用します。非常に簡単です。セッションの最後の URL を保存し、後で収集します。コールバック URL を fb に直接渡す場合、すべての異なるルートを許可する必要があり、これは非常に面倒です。
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