Tag: passport.js

NodeJS Passport会话序列化 – 反序列化用户进入会话?

我正在NodeJS中实现一个Web应用程序,用户在访问每个页面之前需要login。 我使用Passport模块实现了用户authentication。 根据护照指南页面,我在护照configuration中创build了serializeUser和deserializeUser用户函数,以便使用会话跟踪。 在deserializeUser函数中,我从cookie中获取存储的信息,传递给函数的第一个参数,然后在数据库中的用户表中search以检索用户详细信息,并将其传递给done函数。 但是我看到,在每个请求中,反序列化函数被调用并查询数据库来检索用户的详细信息,并将其传递给done函数。 我的问题是,无论是不断查询数据库(在性能和逻辑上),获取用户对象,是正确的做法,还是我已经理解和实现了错误的东西。 可能做的事情不是真的需要?

node.JS Express护照路由

我已经创build了一个简单的项目,3页:家庭,联系和关于。 一切正常,然后我想添加用户注册与mongo。 所以我跟着这个教程 但是,当我添加一些新的路线,我不能访问更多的页面。 这是我的index.js当我可以访问我的3页 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); /* GET contact page. */ router.get('/contact', function(req, res) { res.render('contact'); }); /* POST contact page (submit). */ router.post('/contact', function(req, res) { res.render('contact', { name: req.param('name') }); }); […]

NodeJS 重置密码

我目前正在尝试添加一个策略来更改用户密码,但是我不太了解如何操作Passport。 我的目标是拿3个参数: 当前密码 新密码 新的密码确认 但是,似乎我们仅限于usernameField和passwordField。

如果用户已经存在,passportjs会在注册时进行validation

我试图创build一个注册用户,如果已经存在的数据库login到系统,否则在系统中创build一个新的用户。 到目前为止,我已经拿出了下面的代码。 //filename passport-config var config = require('./config'); var passport = require('passport'); var User = require('./models/user'); var LocalStrategy = require('passport-local').Strategy; var isValidPassword = function(user, password){ return bCrypt.compareSync(password, user.password); }; // Generates hash using bCrypt var createHash = function(password){ return bCrypt.hashSync(password, bCrypt.genSaltSync(10), null); } // As with any middleware it is quintessential to call next() // […]

反序列化用户和pipe理员用户

我为我的expressjs应用程序使用passportjs: 我在同一个项目中build立了pipe理员和用户function。 我已经成功地为用户执行身份validation,现在我正在尝试pipe理员。 我坚持如何在会话序列化和反序列化: //use to serialize the user for the session passport.serializeUser(function(user, done) { done(null, user.id); }); //use to deserialize the user passport.deserializeUser(function(id, done) { models.User.find(id) .success(function(user){ done(null, user); }).error(function(err){ done(new Error('User ' + id + ' does not exists')); }); }); 如何为pipe理员创build另一个序列化和反序列化?

请求使用Passport.js的requestVisibleActions权限,以便在Google+ API中插入片刻

我正在使用一个使用Passport.js进行Google Plusvalidation的Node.js应用程序。 在现在的后期阶段,我们已经引入了使用Google +的时刻添加活动。当他们在我们的网站上发布评论时,将其添加到用户的Google+订阅源中。 使用moment.insert发布需要一个名为requestvisibleactions的特殊权限。 passport.js文档没有说明如何在login时要求这样的权限。 我当前的身份validation处理程序设置是这样的: app.get('/auth/google', redirect, passport.authenticate('google', { scope: ['https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/plus.moments.write'], accessType: 'offline' })); 任何关于如何在passport.js身份validation过程中指定此页面中提到的requestvisibleactions权限的指针,

如何将消息传递给passportjs中的客户端

目前,我得到的问题是从nodejs获取消息 在客户端(与nodejs分开)中, 'use strict'; angular.module('app').controller('RegisterCtrl', function ($scope, alert, $auth) { $scope.submit = function () { $auth.signup({ email: $scope.email, password: $scope.password }) .then(function (res) { alert('success', 'Account Created!', 'Welcome, ' + res.data.user.email + '! Please email activate your account in the next several days.'); }) .catch(function (err) { alert('warning', 'Unable to create account :(', err.message); }); […]

错误:循环依赖:带有回送护照示例的“用户”

我试图使用Strongloop loopback和loopback-component-passport,但不能完全弄清楚如何获得内置的用户模型和环回组件护照提供的模型之间的关系 它看起来像在loopback-component-passport / lib / models / * .json文件中提供的关系,但是我得到以下错误: Error: Cyclic dependency: "User" at visit (/work/node/loopback/myapp/node_modules/loopback-boot/node_modules/toposort/index.js:29:13) at visit (/work/node/loopback/myapp/node_modules/loopback-boot/node_modules/toposort/index.js:43:9) at toposort (/work/node/loopback/myapp/node_modules/loopback-boot/node_modules/toposort/index.js:22:22) at module.exports.exports (/work/node/loopback/myapp/node_modules/loopback-boot/node_modules/toposort/index.js:10:10) at sortByInheritance (/work/node/loopback/myapp/node_modules/loopback-boot/lib/compiler.js:248:21) at buildAllModelInstructions (/work/node/loopback/myapp/node_modules/loopback-boot/lib/compiler.js:205:10) at compile (/work/node/loopback/myapp/node_modules/loopback-boot/lib/compiler.js:79:27) at bootLoopBackApp (/work/node/loopback/myapp/node_modules/loopback-boot/index.js:128:22) at Object.<anonymous> (/work/node/loopback/myapp/server/server.js:44:1) at Module._compile (module.js:456:26) [stu:/work/node/loopback/myapp (master)]$ 这是我的model-config.json { "_meta": { "sources": [ "loopback/common/models", "loopback/server/models", "../common/models", […]

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

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

LocalStrategy函数从未调用

我试图用express4 / passportjs设置一个简单的本地策略authentication,但是authenticationfunction从来没有被调用:这里是我的代码 var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; app.use(compress()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); /* AUTHENTIFICATION */ app.use(passport.initialize()); app.use(passport.session()); passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { done(null, user); }); passport.use(new LocalStrategy( function(username, password, done) { //THIS FUNCTION IS NEVER CALLED console.log("Local strategy"); } )); app.post('/login', function(req, res) { console.log("user […]