Tag: facebook oauth

NodeJS护照Facebook OAuth

我一直在学习NodeJS的课程和教程,并决定在一个应用程序中使用它们。 对于这个项目,我需要用户注册并login才能将其活动存储在数据库中。 我使用Passport来做这个过程,这个项目的这个部分的代码是这样的: /****** Passport functions ******/ passport.serializeUser(function (user, done) { done(null, user.id); }); passport.deserializeUser(function (id, done) { db.user.findOne( { where : { idUser : id } }).then(function (err, user) { done(err, user); }); }); //Facebook passport.use(new FacebookStrategy({ //Information stored on config/auth.js clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, callbackURL: configAuth.facebookAuth.callbackURL, profileFields: ['id', 'emails', 'displayName', 'name', 'gender'] }, […]

电子邮件字段在passportjs facebook策略中是可选的

我写了Facebook的login代码,一切正常,我得到用户的电子邮件地址。 但在Facebook上有另一个选项,让用户select我的应用程序将有权访问的数据。 如果用户点击它,他会看到名称和所有需要标记的内容,但是电子邮件是可选的,用户可以将其从要提供给应用程序的数据中移除。 在应用程序上,电子邮件是必需的。 那么如何在Facebook上标记电子邮件? 这是我在代码中使用的代码片段。 passport.use(new FacebookStrategy({ clientID: config.social.facebook.clientID, clientSecret: config.social.facebook.clientSecret, callbackURL: config.url+'auth/facebook/cb', enableProof: false, profileFields:['id', 'name', 'emails'], scope: "email" }, function(accessToken, refreshToken, profile, done) { // doing the rest of the thing } )); // … app.get('/auth/facebook', passport.authenticate('facebook', {scope: ['email']})); app.get('/auth/facebook/cb', passport.authenticate('facebook'), function(req, res, next) { res.redirect("/"); });

Node.js在response.redirect之后保持URL哈希

我已经看到了许多使用window.location JavaScript修正,但没有为Node.js。 我正在使用OAuth将用户连接到Facebook。 经过授权,Facebookredirect到您的回叫url,并附加“# = ”。 问题是在我的callback路线我redirect到另一个URL,但URL碎片(哈希)正在结转。 这是我的Facebookcallback路线: exports.facebook_signin_complete = function(req, res) { res.redirect('/profile'); }; 如果我删除redirect的URL是/auth/facebook/callback#_=_ ,如果我保持redirect的URL是/profile#_=_ 。 为什么哈希被结转? 这是一个页面特定的锚标记,所以我会很惊讶,如果这是它应该做的。

即使在范围内,Passport-Facebook也不提供电子邮件

在我的应用程序中,我注册了facebook-strategie如下:但是返回的configuration文件不包含电子邮件字段…. passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.facebook.callbackURL, passReqToCallback: true }, function(req, accessToken, refreshToken, profile, done) { // No email in the following colsole.log console.log(JSON.stringify(profile)); })); 得到如下: app.get('/oauth/facebook', passport.authenticate('facebook', { failureRedirect: '/login', scope:['email'] })); (所以我使用范围如这里所说: Passport-Facebook不会收到电子邮件 ) 在FBlogin页面我甚至要求电子邮件,我确实提供: 任何帮助非常appriciated!

Passport.js:passport-facebook-token策略,通过JS SDKlogin,然后validation护照?

我正在寻找一种方法让我的客户端与Facebook的JS SDK授权,然后以某种方式将此授权转移到我的节点服务器(所以它可以validation与fbgraphicsAPI的请求) 我偶然发现: https : //github.com/jaredhanson/passport-facebook/issues/26 & https://github.com/drudge/passport-facebook-token 护照-Facebook似乎是一个完全不同的策略。 当我假设: 一个使用fb JS SDKlogin,然后facebook-token策略以某种方式从文档或正文对象中提取令牌和fb id? 或者有没有其他体面的方式来实现这一目标? 我试图避免由服务器SDK强制实施的redirect