Tag: passport.js

在NodeJS中重置密码

我做了一个设置,使用NodeJS /护照更新用户的密码。 我遵循这个伟大的指南: http : //sahatyalkabov.com/how-to-implement-password-reset-in-nodejs/ 。 这99%的工作。 我不得不修改它包含一些条纹function。 但是我担心我有一个严重的错误,我无法find它。 用户现在可以通过发送电子邮件的过程,input一个新的密码,并login。另一封电子邮件说,他们的密码已成功更新。 全部完美。 然而。 因为某些原因。 新密码没有被保存。 用户只能使用旧密码login。 我已经尝试了所有我能想到的方法来解决这个问题。 我还有其他几个程序员看这个,他们中没有一个能够弄清楚它在世界上是如何工作的。 目前的想法是,会议可能没有正确结束,但我们试图破坏会议,它仍然没有工作。 任何帮助不胜感激。 完整设置: 用户模式: var UserSchema = new mongoose.Schema({ username: { type: String, required: true, unique: true }, password: String, datapoint: String, email: { type: String, required: true, unique: true }, resetPasswordToken: String, resetPasswordExpires: Date }); UserSchema.pre('save', […]

护照本地策略和cURL

我想用CURLtesting我的node.js + express + passport.jstesting应用程序(RESTful)。 我的代码: var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; // Define the strategy to be used by PassportJS passport.use(new LocalStrategy( function(username, password, done) { if (username === "admin" && password === "admin") // stupid […]

Passport.js和Mongoose.js在login时填充用户 – 在req.user上丢失填充字段

使用Mongoose.js,我的身份validation方法会填充字段“companyRoles._company”,但是当我试图访问req.user对象中相同的填充字段时,填充的数据将恢复为公司参考ID。 //Authentication UserSchema.static('authenticate', function(email, password, callback) { this.findOne({ email: email }) .populate('companyRoles._company', ['name', '_id']) .run(function(err, user) { if (err) { return callback(err); } if (!user) { return callback(null, false); } user.verifyPassword(password, function(err, passwordCorrect) { if (err) { return callback(err); } if (!passwordCorrect) { return callback(null, false); } return callback(null, user); }); }); }); //login post […]

护照js无法在跨网域中维护会话

我正在使用护照JS,快速和mongoose做一个API。 当我在同一个域中testing它时,它保持会话并正常工作。 但是在跨域,它失败了。 任何线索如何维护会议跨域使用相同的configuration。 以下是代码 allowCrossDomain = function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); res.header("Access-Control-Allow-Headers", req.headers["access-control-request-headers"]); // res.header("Access-Control-Allow-Credentials", "true"); if ("OPTIONS" == req.method) { res.send(200); } else { next(); } //allow all crossDomain request app.use(allowCrossDomain); //session handling app.use(express.cookieParser("gallery")); app.use(express.session()); app.use(passport.initialize()); app.use(passport.session()); app.use(function(req, res, next) { // check if client sent […]

护照和连接闪光灯:req.flash不是一个function

我正在学习passport flash消息,并且在运行我的脚本时遇到了这个错误: req.flash is not a function 这是我的configuration: var flash=require("connect-flash"); app.use(flash()); passport.use(new LocalStrategy(function(req,username, password,done) { process.nextTick(function() { UserDetails.findOne({'username': username}, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false,req.flash('message','Invalid username or password')); } if (user.password != password) { return done(null, false,req.flash('message','Invalid username or password' )); } return done(null, user); }); […]

错误:无法将用户序列化到会话中。 错误的函数传递给serializeUser()?

我正在尝试使用Node的Express框架来完成我的第一步。 我试图使用Passport来实现一个很小的身份validation示例。 但是,我无法做到这一点。 我不断收到错误: Error: failed to serialize user into session 。 我安装了节点检查器,试图看看发生了什么事情。 显然,我的序列化函数正在被调用,它执行done(null, 0)正如所料。 我试着看看护照代码,但我不明白是什么问题。 这几乎是我第一次尝试Node应用程序,所以我不熟悉代码。 有人可以给我一个提示吗? 谢谢。 var express = require('express'); var jade = require('jade'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); /* * Settings */ app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.logger()); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({ […]

使用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吗?