Tag: 护照本地

在passport.js中,中间件方法“本地注册”具有唯一的密钥电子邮件和密码。 可以改变或不改变

这里的代码是 passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, email, password, done) { console.log("email==" + email + " " + "password==" + password); User.findOne({ 'email' : email }, function(err, user) { if (err) return done(err); if (user) { return done(null, false, req.flash('signupMessage', 'That email is already taken.')); } else […]

ReactJs前端和Passport NodeJs后端

我正在用NodeJS,Express&Passport构build一个API RESTful的项目。 而对于这个应用程序的前端,我想使用ReactJS 。 我可以创build一个单独的项目,为我的前端创build应用程序反应,并获取我的API,同时保持Passport的好处? 或者我应该在我的请求中始终发送用户的信息? 或者在API的同一台服务器上为我的前端服务?

如何在Node.js中重置密码后使用passport.jslogin?

我正在使用passport.js进行身份validation。 我有一个问题,我想解决: 每当用户想要reset他的password ,我发送password reset link的电子邮件与token id他。 点击该链接后,他可以reset password ,但重置密码后, 我希望用户被redirect到dashboard page而不是log in page 。 我尝试用passport.js找出解决scheme,但没有得到任何好运。 有人可以给我任何想法来解决这个问题? 谢谢

重新加载页面时丢失cookie /会话

我有两个单独的应用程序: AngularJS客户端工作在http:// localhost:8080 工作在http:// localhost:3000上的NodeJS API服务器 NodeJS API服务器只是给客户端提供json数据(并不提供任何html页面)。 我在sessionStorage中存储关于autificated用户的信息。 问题:当我login到系统并重新加载页面时,我在sessionStorage中丢失了有关用户的信息。 这是我的AngularJSauthentication服务: module.exports = function($http, $location, $cookies, $alert, $window) { $window.sessionStorage.setItem('currentUser', JSON.stringify($cookies.get('user'))); $cookies.remove('user'); return { login: function(user) { return $http.post('http://localhost:3000/api/login', user).success(function(data) { $window.sessionStorage.setItem('currentUser', JSON.stringify(data)); $location.path('/fillprofile'); $alert({ title: 'Cheers!', content: 'You have successfully logged in.', placement: 'top-right', type: 'success', duration: 3 }); }).error(function() { $alert({ title: 'Error!', […]

Passport-local-mongoose:注册后validation用户权限

我正在尝试使用passport-local-mongoose在/ register表单上提交POST后对用户进行身份validation。 我不明白为什么我总是得到“未经授权”奇怪的是没有数据在数据库上提交(它工作,如果我从app.post(“/注册”)删除“passport.authenticate('本地')) 有任何想法吗 ? app.js: // ====== Dependencies var express = require('express'); bodyParser = require('body-parser'); validator = require('express-validator'); cookieParser = require('cookie-parser'); expressSession = require('express-session'); passport = require('passport'); LocalStrategy = require('passport-local').Strategy; auth = require('./controllers/auth'); registration = require('./controllers/register'); User = require('./models/user'); // ====== Options var app = express() .use(bodyParser.urlencoded({ extended: false })) .use(bodyParser.json()) .use(validator()) .set('view engine','ejs') […]

Passport.js记得我的function

https://github.com/jaredhanson/passport-remember-me passport.use(new RememberMeStrategy( function(token, done) { Token.consume(token, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } return done(null, user); }); }, function(user, done) { var token = utils.generateToken(64); Token.save(token, { userId: user.id }, function(err) { if (err) { return done(err); } return done(null, token); }); } )); […]

护照loginauthentication没有密码字段

我正在build立用户注册使用nodejs和expression。 我正在创build一个没有任何护照或任何身份validation策略的新用户。 我想要的是用户应该被视为login成功后login。 所以我正在为用户构buildloginAPI。 用户只能使用电子邮件字段进行身份validation(因为我没有与用户存储任何密码)。 但我无法validation用户,因为我在护照authentication中“缺less凭证”。 app.js var config = require('./config/development'); var passport = require('passport'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var session = require('express-session'); var app = express(); //connect db mongoose.connect(config.db); mongoose.set('debug', config.mongoose.debug); require('./config/passport')(passport); // pass passport for configuration //initialize all models var modelsPath = require('path').join(__dirname, 'models'); require('fs').readdirSync(modelsPath).forEach(function(file) { require('./models/' + file); […]

如何在Express中间件中使用next()内passport.authenticate(…)?

我有一个简单的护照设置与我的login路线local策略。 我不知道如何正确使用身份validationfunction作为中间件。 这是我在控制器之前调用/login路由的中间件: exports.requireLogin = (req, res, next) => { passport.authenticate('local', { session: false }, (err, user, info) => { if (err) { next(err); } else if (!user) { res.status(401).json(info.message); } else { req.login(user, (loginError) => { if (loginError) { console.log('error here'); next(new Error('test')); } else { next(); } }); } })(req, res, next); }; […]

req.isAuthenticated()用login用户返回false

我正在testing护照认识到用户通过req.isAuthenticated()login,但即使用户login后,req.isAuthenticated()返回false。 有谁知道这是为什么发生? const request = require('supertest') const express = require('express') const bodyParser = require('body-parser') const app = express() const passport = require('passport') const LocalStrategy = require('passport-local').Strategy const expressSession = require('express-session') const User = require('../src/models/User.js') const mongoose = require('mongoose') const url = "mongodb://user1:password1@ds155091.mlab.com:55091/redditmock" mongoose.connect(url) //Configuring local authentication passport.use(new LocalStrategy( (username, password, done) => { User.findOne({username: username}, […]

在login表单中使用护照时得到不好的要求

我正在尝试在nodejs中使用护照本地会话创build一个用户login[.ejs文件]窗体。 我的问题是,当我点击提交button时,我一直在收到不好的请求,任何人都可以检查我的代码,并帮助我 这是我的nodejs代码: 需要: var express = require('express'); var bodyParser = require('body-parser'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var cookieParser = require('cookie-parser') var expressSession = require('express-session'); var mongodb = require('mongodb'); var mongoose = require('mongoose'); var app = express(); var MongoClient = mongodb.MongoClient; app.use(expressSession({ secret: 'secret' })); app.use(passport.initialize()); app.use(passport.session()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); […]