阅读很多有关主题的内容,但无法找到将现有本地策略帐户与Facebook策略帐户相关联的美妙方式。
问题是我有JWT授权,所以如果用户点击"连接FB帐户"按钮,他重定向到Facebook,而不是回到没有JWT的服务器。有没有办法发送带有一些用户身份的FB请求,在回调网址中回复给我?
将FB帐户链接到当前登录用户的正确方法是什么?
UPD 找到了一种使用参数发送请求/获取回调的方法:
const facebook = new FacebookStrategy.Strategy({
...facebookConfigAndScopes,
passReqToCallback: true
},
(req, accessToken, refreshToken, profile, done) => {console.log(req.params.id);}
);
userRouter.route('/auth/facebook/:id')
.get((req, res, next) => passport.authenticate('facebook', {
scope: ['public_profile'],
callbackURL: '/api/user/auth/facebook/callback/'+req.params.id
})(req, res, next)
);
userRouter.route('/auth/facebook/callback/:id')
.get(
(req, res, next) => passport.authenticate('facebook', { callbackURL: '/api/user/auth/facebook/callback/'+req.params.id })(req, res, next),
);
所以我可以发送用户哈希来识别现有用户。
答案 0 :(得分:0)
使用state
参数将令牌传递给Facebook。 Facebook将在调用回调网址时在state
参数中添加数据。
更多信息: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#logindialog