Articles of passport.js

使用Passport.js将facebook数据链接到当前login的用户

我正在使用passport.js,如果我可以将一个Facebook ID链接到一个login用户的帐户,我正在伤人。 像这样的东西: passport.use( new FacebookStrategy({ consumerKey: — consumerSecret: — callbackURL: "http://mycallback" }, function(token, tokenSecret, profile, done) { if (user is logged in) user = User.addfacebookId(user, profile.id) done(user); } } ));

NodeJS中的“完成”属性是什么?

我在本教程中编写了NodeJS中的本地login: https://scotch.io/tutorials/easy-node-authentication-setup-and-local 在文件config / passport.js中 function(req, email, password, done){ process.nextTick(function(){ User.findOne({'local.email' : email}, function(err, user){ if(err) return done(err); if (user){ return done(null, false, req.flash('signupMessage', 'message')); } 我是NodeJS和Javascript的新手,我不明白像“完成”这样的值是一个函数(return done(err))。 有任何系统function? 非常感谢!

使用passportjs重置/更改nodejs中的密码

我在nodejs中使用passportjs来创build一个login系统。 一切正常,但我不知道如何重置用户密码,当他们忘记密码或他们想改变它。 MongoDB中的用户模型 var UserSchema = new Schema({ email: String, username: String, provider: String, hashed_password: String, salt: String, }); 提前致谢!

Passport.js – 将{user:req.user}隐式传递给模板?

现在使用Passport.js和Express进行多个项目,我已经注意到自己一遍又一遍地做了这些工作,即为我的快速路由明确指定{ user: req.user } 。 偶尔忘记通过它,突然就像用户甚至没有login了。 我怎么能传递一个user variables在我的路线,而不必显式地写这样的每条路线? app.get = function(req, res, next) { res.render('home', { title: 'Home', user: req.user }); }; 我认为everyauth有这样的快递帮手,但Passport.js吗?

如何使用Passport-Facebooklogin而不redirect?

我正在构build一个phonegap应用程序,它将在服务器端有nodejs。 我想要使​​用passport-facebook策略来实现login,但是它们的callback指定了两个path/ successcallback和/ failurecallback。 有一个单一的页面应用程序,这使得用户redirect到某个页面非常混乱。 我不想从服务器提供静态文件(index.html,login.html),而是让它们在客户端上,并要求客户端进行ajax调用。 到目前为止,我可以将/ auth / facebook调用作为AJAX请求,但由于login策略要求用户redirect,因此我无法收到相同请求的任何响应。 我宁愿要发送一个user_id或名称回成功login用户或向他展示login表单(这也是在电话号码www目录)在失败。 但redirect和CORS错误阻止我这样做。 有什么办法可以实现这个吗? 自从几个星期以来,我一直在寻找这个,但没有成功。 我真的很感谢你的帮助! PS:我宁愿避免从节点服务器发送所有html和静态内容。 编辑:添加login代码,以更好地理解: app.get('/userpage', utility.isLoggedIn, function(req, res) { res.send('User:'+req.user); }); app.get('/', utility.isLoggedIn, function(req, res) { res.redirect('/userpage'); }); app.get('/auth/facebook', passport.authenticate('facebook')); app.get('/auth/facebook/callback',passport.authenticate('facebook', { successRedirect : '/', failureRedirect : '/login' })); app.get('/logout', function(req, res) { req.logout(); res.redirect('/login'); }); utility.isLoggedIn: function isLoggedIn(req, res, next) { […]

护照authentication失败导致redirect循环

我正在使用节点,快递和护照与Facebook身份validation。 我有以下路线(当/facebook/auth/callback是callbackurl): function render(page, req, res) { var user = null; if (req.user) { user = req.user.toObject(); user.isLoggedIn = true; } res.render(page, { user: user }); } app.get('/auth-failure', function (req, res) { res.render('auth-failure'); }); app.get('/auth-success', function (req, res) { render('auth-success', req, res); }); app.get('/facebook/auth', passport.authenticate('facebook', { scope: [ 'email', 'user_about_me', 'publish_actions']})); app.get('/facebook/auth/callback', passport.authenticate('facebook', { failureRedirect: […]

python(django)hashlib vs Nodejsencryption

我正在通过Django站点移植到Node.js,我试图在Node中重新实现Django set密码方法。 这是Django代码 from django.utils.crypto import ( pbkdf2, get_random_string) import hashlib password = 'text1' algorithm = "pbkdf2_sha256" iterations = 10000 salt = 'p9Tkr6uqxKtf' digest = hashlib.sha256 hash = pbkdf2(password, salt, iterations, digest=self.digest) hash = hash.encode('base64').strip() print "%s$%d$%s$%s" % (self.algorithm, iterations, salt, hash) 这里是我到目前为止的Node.js代码: var password = 'text1'; var hashed = crypto.createHash('sha256').update(password, 'utf8').digest(); var salt = […]

Hello.js vs Passport.js?

我一直想知道这一点,我做了一些search,但没有发现(除了这个 ,这是不同的)。 我试图澄清Hello.js和Passport.js之间的差异,并找出两者的用例。 从表面上看,除了客户端和节点中间件外,他们似乎都具有类似的function,而且都是模块化的。 我已经做了一些与护照戳,但还没有尝试过Hello.js。 两个图书馆之间的主要区别是什么,哪个用例更喜欢一个图书馆呢?

使用passport.js中的令牌validation电子邮件

我只是寻找解决scheme,它使validation电子邮件与令牌为我的本地aumentation在passport.js有一些插件或节点的组件可以让我validationeasyer? 或者我必须自己做? 我的控制器 exports.postSignup = function(req, res, next) { req.assert('email', 'Email is not valid').isEmail(); req.assert('password', 'Password must be at least 4 characters long').len(4); req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password); var errors = req.validationErrors(); if (errors) { req.flash('errors', errors); return res.redirect('/signup'); } var user = User.build({ email: req.body.email, password: req.body.password, }); User .find({ where: { email: req.body.email […]

您可以使用Passport进行身份validation而不redirect吗?

我有以下工作代码通过护照本地策略进行身份validation: app.post('/api/login', passport.authenticate('local-login', { successRedirect : '/api/login/success', failureRedirect : '/api/login/error', failureFlash : true })); app.get('/api/login/error', function(req, res) { res.send(401, {error: req.flash('loginMessage')}); }); app.get('/api/login/success', function(req, res) { res.send(200, {user: req.user}); }); 但是,理想情况下,我想处理一条快速路线中的错误和成功消息,而不是redirect到两条额外的路线。 这可能吗? 我尝试使用“自定义callback”,但似乎错误序列化用户出于某种原因。