【发布时间】:2014-06-03 10:24:06
【问题描述】:
我正在使用 PassportJS 在我的网站上对 Facebook 用户进行身份验证。棘手的部分是,我首先使用每个用户在登录 Facebook 时默认授予的简单 Facebook 权限登录用户,但用户稍后可以根据他们的行为启用授予粉丝专页管理员权限。
我在处理这两个授权时都没有问题,但是,当我想将 Fanpage Admin 用户重定向到不同的 URL 时,我不能,因为 Passport 只允许我为我的 Facebook 策略设置一个回调 URL,因为所有回调都进行了来自 Facebook 的结尾是 /auth/facebook/callback。
var passportOptions = {
successRedirect: '/admin/',
failureRedirect: '/'
}
var fbAdminPermissions = {
scope: ["email, manage_pages"]
}
var fbNormalPermissions = {
scope: ["email"]
}
app.get('/auth/facebook', passport.authenticate('facebook', fbNormalPermissions));
app.get('/auth/facebookPages', passport.authenticate('facebook', fbAdminPermissions));
app.get('/auth/facebook/callback', passport.authenticate('facebook', passportOptions));
我需要有多个successRedirect url,具体取决于用户授予普通权限还是Facebook 管理员权限。我想将 FBAdmins 重定向到另一个 url,而不是 /admin root。
如果不制定新的 Facebook 策略,我希望如何实现这一目标?
【问题讨论】:
标签: node.js facebook passport.js