Tag: passport local

授权后护照不会redirect

我遇到了一个问题,当我尝试使用护照login时,页面不redirect。 授权返回true (正确的用户名,密码)。 我很确定它位于我的有效validPasswordfunction的某个地方,但我不确定。 login路线 app.get('/login', function (req, res) { res.render('login', {}); }); login后 app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })); 用户原型 User.prototype.validPassword = function(username, unhashedPassword) { async.waterfall([ function (callback) { User.find({ "username" : username }, function (err, data) { if(err) return handleError(err); callback(null, data); }); }, function (data, callback) { var isGood = […]

Express Passport.js成功redirect不加载页面,请求保持挂起

我正在尝试使用passport.js和护照本地进行基本的用户名/密码authentication。 虽然failureRedirect完全按照它应该做的事情(redirect到一个指定的页面),但是successRedirect会保持挂起状态,并且对指定的页面有请求,并且在一段时间之后它会返回“空的响应”。 http://www.deviantpics.com/VdG 正如你在这幅图中看到的那样,当它请求仪表板时,它说它的大小是0B,但是当我在仪表板上进行redirect时它说它有1.6B。 我已经看遍了整个Stackoverflow,我找不到一个答案,可以帮助我。 你可以请我检查我的代码,并build议一些事情之前,我疯了。 这是护照加载代码 //set expression var expressSession = require('express-session'); app.use(expressSession({ secret: credentials.session.secret })); //set passport var passport = require('passport'); var localStrategy = require('./strategies/auth/local.js'); passport.use('local', localStrategy); passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); app.use(passport.initialize()); app.use(passport.session()); routes.js module.exports = function(app){ //main app.get('/', main.home); […]

ValidationError:用户validation在MongooseError.ValidationError失败

我正在尝试创build一个简单的node.js应用程序与使用mongoDb护照本地身份validation,并表示为一个框架,但我有一个问题 每当我尝试使用registry单将数据提交到数据库时,点击提交后立即出现在节点terminal: 这里是我的用户架构如何看起来像: var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); // define the schema for our user model var userSchema = mongoose.Schema({ local : { name : String, username : String, mobile : Number, email : String, gender : String, password : String } }); // methods ====================== // generating a hash userSchema.methods.generateHash = […]

如何使用nodejs / passport处理未经授权的请求

根据文档 ,如果我是这样处理身份validation请求,我将能够捕获成功的尝试。 app.post('/login', passport.authenticate('local'), function(req, res) { // If this function gets called, authentication was successful. // `req.user` contains the authenticated user. res.redirect('/users/' + req.user.username); }); 但是,像文件说: 默认情况下,如果身份validation失败,Passport将以401 Unauthorized状态响应,并且不会调用任何其他路由处理程序。 如果authentication成功,则将调用下一个处理程序,并将req.user属性设置为已通过身份validation的用户。 我如何处理未经授权的login尝试? 我知道我可以用自定义中间件来处理它,但有没有更好的方法?

sailsjs基于jwt令牌的authentication示例

我正在按照这个教程 。 但是,当我做sails lift运行我的应用程序,我越来越低于错误。 抛出新的TypeError('JwtStrategy需要一个函数从请求中检索jwt(请参阅选项jwtFromRequest)'); ^ TypeError:JwtStrategy需要一个函数来从请求中检索jwt(参见选项jwtFromRequest) 请帮我解决这个错误。

Passport-local返回400错误,从不查询数据库

我试图在我的node.js应用程序中使用passport.js来validation用户与MongoDB。 我从来没有成功。 在post中,我发送“email”:“email@gmail.com”,“密码”:“testing” var passport = require('passport') , LocalStrategy = require('passport-local').Strategy; app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/fail' }) ); passport.use(new LocalStrategy({ emailField: 'email', passwordField: 'passw', }, function (emailField, passwordField, done) { process.nextTick(function () { db.collection(users, function (error, collection) { if (!error) { collection.findOne({ 'email': emailField, 'password': passwordField }, function (err, user) { if (err) […]

如何知道用户是否使用passport.js跨子域login

我已经在domain.com和sub.domain.com分别创build了两个Mean.io应用程序,一切都按预期在两个工作,但问题是,子域( sub.domain.com )中的一个需要知道用户被logging在主应用程序( domain.com )中。 我知道护照处理会话,并知道用户是否login,因为它在express.js中的每个请求的req中创build一个用户对象: if (req.user) { // logged in } else { // not logged in } 这里的不便之处在于,这种方法是在域内而不是在外域进行的。 换句话说,如果我以这样的方式请求后端: $http.get('/api/users/me').success(this.onIdentity.bind(this)); 从domain.com ,这将填充用户数据,但是,如果我直接从浏览器做出相同的请求,例如,它返回null。 我需要了解如何跨域传递这些信息? 如果每次请求$http.get('/api/users/me').success(this.onIdentity.bind(this)); 信息被传递到后端?

护照不保持持久login会话

我首先看护照,mongodb和快递持续会议,但没有帮助或没有意义。 我正在尝试持续login我的网站 。 我的序列化过程不起作用。 // Passport needs to be able to serialize and deserialize users to support persistent login sessions passport.serializeUser(function(user, done) { console.log('serializing user:',user.username); //return the unique id for the user return done(null, user._id); }); //Desieralize user will call with the unique id provided by serializeuser passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { console.log('deserializing […]

当它不应该时,authentication返回“401(未授权)”

我第一次设置了身份validationfunction,并且在用户login后得到了一些意想不到的结果。一位同事给了我一个有效身份validation的应用程序来模拟我的应用程序,好像我所做的一切都是正确的。 我在前端使用AngularJS,SailsJS后端框架和PassportJS身份validation中间件。 我的源是(现在)公开存储…后端API在Github这里( API Github )和前端代码在这里( 前端Github ) 基本上发生的是用户 点击loginbutton,触发这个function login: function (credentials) { return baseAuth.customPOST(credentials, 'login').then(function (user) { $log.debug('User logged in: ', user); isAuthenticated = true; return user; }); }, 该customPOST的控制器逻辑是这样的 login: function (req, res, next) { passport.authenticate('local', function (err, user, info) { if (err) { return res.json(err); } else if (user) { req.logIn(user, […]

如何发送json作为护照validation后的响应在node.js中

我正在尝试这个git的例子 。 当我将其与我的项目集成在一起时效果很好,但是我想实现的是将json作为对客户端/请求的响应发送,而不是successRedirect:'/ profile'&failureRedirect:'/ signup'。 是否有可能发送一个json,还是有一些其他方法得到相同的? 任何帮助将不胜感激,恩