Articles of passport facebook

passport-facebook Strategy.parseErrorResponse

我正在尝试设置Facebook身份validation,并且每次调用callback函数时都会收到一个错误,它会在/node_modules/passport-facebook/lib/strategy.js:196:12处引发一个Strategy.parseErrorResponse 没有消息告诉我什么是错的。 我检查,以确保我的clientID和秘密是正确的(正如我看到这可能发生,如果他们是错的)。 passport.use(new FacebookStrategy({ clientID: myId, clientSecret: mySeceret, callbackURL: callBackUrl, passReqToCallback : true }, (req, accessToken, refreshToken, profile, done) => { process.nextTick(() => { if (req.user) { done(null, req.user); if (!req.user.facebookId) { req.user.facebookId = profile.id; req.user.save().then(() => { done(null, req.user); }); } else { done(null, req.user); } } else { User.find({where: {facebookId: profile.id}}, function […]

NodeJS + Redis + Express + Passport Facebook身份validation失败

NodeJS和redis与护照facebook的整合有一个问题。 这是我的代码: var express = require('express'); var engine = require('ejs').__express; var app = express(); var mongo = require('mongodb'); var mongoose = require('mongoose'); var hanzi = require('./modules/hanzi'); var session = require('express-session'); var passport = require('passport') , FacebookStrategy = require('passport-facebook').Strategy , RedisStore = require('connect-redis')(session) , redis = require('redis') , dbRedis = redis.createClient(); Server = mongo.Server, Db = […]

Nodejsexpression本地和Facebook的集成authentication

我实际上使用NodeJS开发了一个restfull服务器并进行expression。 我已经实现了oauth2协议,以保证我的API。 我想添加Facebook身份validation,但我不设法将Facebook身份validation与我的本地身份validation集成。 server.js router.route('/oauth/local') .post(oauth2Controller.token); router.route('/oauth/facebook') .get(passport.authenticate('facebook-token'), oauth2Controller.token); //impossible to call oauth2Controller.token oauth2.js var oauth2orize = require('oauth2orize') var User = require('../models/user'); var AccessToken = require('../models/accesstoken'); var RefreshToken = require('../models/refreshtoken'); var passport = require('passport'); var server = oauth2orize.createServer(); server.exchange(oauth2orize.exchange.password(function(application, username, password, scope, callback){ User.findOne({username: username}, function(err, user){ if (err) return (callback(err)); if (!user) return (callback(null, […]

ExpressJs Passportjs将每个请求的用户对象反序列化为路由

我有一个ExpressJS应用程序,使用Passportjs与Facebook进行身份validation,一切都按预期工作exception的一个问题。 我有vehicle.js /routes/其中包含一些路由(router.gets和router.posts)需要身份validation和一些不。 如果用户login,则由vehicle.js处理的每个请求都将导致用户反序列化,这是一个Mongoose查找。 当请求发送到不需要身份validation的router.get和/或router.post ,如何避免这些不必要的Mongoose查找? 我已经查阅了这个SO问题 ,并没有解决我的问题(我已经宣布上面的静态资源护照,所以他们没有通过身份validation)。 app.js中的Passportconfiguration如下所示: // Configuring Passport var passport = require('passport'); var expressSession = require('express-session'); app.use(expressSession({secret: 'thisIsSecret'})); app.use(passport.initialize()); app.use(passport.session()); // Using the flash middleware provided by connect-flash to store messages in session // and displaying in templates var flash = require('connect-flash'); app.use(flash()); // Initialize Passport var initPassport = require('./passport/init'); initPassport(passport); […]

在Express.js中将variables从中间件传递给Passport

我想通过一个variables中间件,并成功使用Facebook的护照成功后可用。 // route for facebook authentication and login router.get('/connect/facebook', rentalinfo, passport.authenticate('facebook', { scope : 'email' })); // handle the callback after facebook has authenticated the user router.get('/connect/facebook/callback', passport.authenticate('facebook', { //successRedirect : '../../../protected', failureRedirect : '/' }), function(req, res) { // successful auth, user is set at req.user. redirect as necessary. //Get the redirect location from […]

Node.js Passport Facebook身份validation没有电子邮件返回

我正在尝试使用来自node.js的护照设置Facebook身份validation。 当我运行该应用程序,并去/ auth /脸书,我去脸书页面给予Facebook的许可,以返回我的电子邮件。 但是,当我点击确定后,我得到一个页面(callback),说:“没有电子邮件与此帐户关联! 根据代码,这意味着profile.emails为空。 我错过了什么? 这些是我启动应用程序时显示的警告。 我不知道他们是否是问题。 express-session deprecated undefined resave option; provide resave option auth.js:44:37 express-session deprecated undefined saveUninitialized option; provide saveUninitialized option auth.js:44:37 这是授权码。 我正在阅读edx的介绍MEAN堆栈课程M101X。 function setupAuth(User, app) { var passport = require('passport'); var FacebookStrategy = require('passport-facebook').Strategy; // High level serialize/de-serialize configuration for passport passport.serializeUser(function(user, done) { done(null, user._id); }); passport.deserializeUser(function(id, […]

sails中的节点js passport-facebook策略authentication

你好我试图使用Facebookloginauthentication我的应用程序。 为此,我正在使用passport-facebook。 我的代码如下: //config/passport.js var passport = require('passport'); var FacebookStrategy = require('passport-facebook').Strategy; var FACEBOOK_STRATEGY_CONFIG = { clientID : 'xxxxxxxxxxxxxxxxxxxxx', clientSecret : 'xxxxxxxxxxxxxxxxxxxxx', callbackURL :'http://test.com:3000/auth/facebook/callback' }; function onFacebookStrategyAuth(token, refreshToken, profile, done){ UserCredentials.findOne({'facebook.id' : profile.id}).then(user => { if(user) return done(null, user); else{ var newUser = {}; newUser.facebook.id = profile.id; newUser.facebook.token = token; newUser.facebook.name = profile.name.givenName + ' […]

当使用passport-facebook时,mongoose-findorcreate写入重复的用户

我正在尝试使用passportJS来设置用户身份validation。 我决定使用这个名为mongoose-findorcreate的npm包,而不是写一个findOrCreate函数来自己处理护照。 所以现在我正在testing我的应用程序,我可以login使用我的Facebook的凭据,如预期的,但问题是,我在我的数据库中获取多个条目相同的Facebooklogin。 这是我的用户模型: let mongoose = require('mongoose'); let Schema = mongoose.Schema; let findOrCreate = require('mongoose-findorcreate'); // User schema definition let UserSchema = new Schema( { provider: { type: String, required: true }, id: { type: String, default: 'unknown' }, displayName: { type: String, default: 'unknown' }, name: { type: Object }, emails: { type: […]

护照loginredirect

我正在使用passport-facebooklogin到使用Facebook的网站(实现是完整的,工作正常)。现在,我想redirect到一个页面,其中包含一个表格,他们应该填写一旦他们从fblogin,如果没有这样做(没有填写表格并提交),他们不能访问网站上的任何其他链接。 这里是我想到的方法:一旦用户login,我会做一个数据库查询内部的战略,看看他们是否以前提交过的数据,如果他们已经提交我会设置session.filledOrNot = true的对象我将返回到完成的callback,并使用此属性,让他们继续或redirect回同一页面。 这是一个好方法吗?

如何使用Passport.js facebook策略进行身份validation后使用Facebook Graph API?

我用Facebook战略authentication了我的用户,并获得了他们的用户信息。 我的应用程序现在需要在Facebook上点击其他graphicsAPI端点。 我没有看到一种方法来访问一个工具来发送请求到FacebookgraphicsAPI。 在进一步检查策略后,我发现一切都是围绕OAuth 2策略构build的。 1)如何使用facebook策略调用其他graphicsapi端点? 2)我是否应该钻入护照api某处访问相关的oauth对象以实现此目的? 或者我想这个错误,我应该得到用户的访问令牌和使用另一个第三方库查询Facebook的API?