Tag: passport local

Node.js网站的用户身份validation

我正在build立一个基于Node.js的网站。 我所遵循的确保API安全的方法如下: 用户用电子邮件和密码注册 。 在成功注册和login时,客户端会收到一个随机生成的令牌 它将令牌存储在本地存储中 , 并在所有后续请求中将令牌作为头传递 。 对于每个后续请求,服务器都会检查令牌并validation用户 。 一旦用户注销, 存储在客户端本地存储器中的令牌将被删除 用户再次login时会获得新的令牌 。 上述方法是否足够好?请build议更好的方法,如果有的话。 我也看到有人使用护照本地进行身份validation。 以上述authentication方式, 护照本地帮助如何?

passportjs本地策略没有被调用

我正在使用快递和护照来build立一个restAPI后端,似乎我的localStrategy没有被请求调用。 我的应用程序的入口点如下所示: app.js var fs = require('fs'); var express = require('express'); var mongoose = require('mongoose'); var passport = require('passport'); var config = require('./config/config'); var morgan = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var app = express(); app.use(morgan('dev')); // log every request to the console app.use(cookieParser()); // read cookies (needed for auth) app.use(bodyParser.urlencoded({extended:true})); […]

使用passport-facebook策略和passport-local无法将用户序列化到会话中

我在sails.js使用passport-local和passport-facebook策略进行身份validation。 使用电子邮件validation工作正常。 但是,当用户使用Facebook进行身份validation时,出现此错误消息[Error: Failed to serialize user into session] 。 然后我testing了serializeUser方法,事实certificate, user参数在facebook的情况下是空的。 虽然我也试着看看verifyHandler是否被调用,而不是被调用。 这是我的Facebook身份validation操作代码: facebook: function (req, res) { passport.authenticate('facebook', {failureRedirect: '/login', scope: ['email']}, function (err, user) { if ((err) || (!user)) { req.session.flash = { errMsg: 'Email or password mismatch.' } return res.redirect('/login'); } req.logIn(user, function (err) { if (err) { console.log(err); res.view('500'); return; […]

使用sails作为REST API来启动护照js集成

我正在尝试在本地mysql数据库中使用护照js进行身份validation。 我正在使用邮递员扩展来testing应用程序。 我发送两个字段,即用户名和密码进行身份validation。 当任何一个字段为空时,响应以json格式显示为 { "message": "Missing credentials", "user": false } 但是,当我通过两个字段的值我得到500内部服务器错误。 错误:发送500(“服务器错误”)响应:TypeError:无法读取在d:\ Test \ api \ controllers \ AuthController.js:25:23的未定义属性'消息'在Strategy.strategy.error(d:\ Test (D:\ Test \ node_modules \ passport-local \ lib \ strategy.js:94:17)在尝试时(d:\ Test \ node_modules \ passport \ local \ lib \ strategy.js: (d:\ Test \ node_modules \ passport \ lib \ middleware \ authenticate.js:342:7)在Object.module.exports.login(():\ node_modules […]

NodeJS Passport TypeError:undefined不是一个函数

我正在使用护照模块node.js,我收到以下错误: TypeError: undefined is not a function at module.exports (C:\cygwin64\home\Home\gethweb\routes\index.js:21:33) at Layer.handle [as handle_request] (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:312:13) at C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:330:12) at next (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:271:10) at C:\cygwin64\home\Home\gethweb\node_modules\connect-flash\lib\flash.js:21:5 at Layer.handle [as handle_request] (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:312:13) at C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:330:12) at next (C:\cygwin64\home\Home\gethweb\node_modules\express\lib\router\index.js:271:10) at SessionStrategy.strategy.pass (C:\cygwin64\home\Home\gethweb\node_modules\passport\lib\middleware\authenticate.js:318:9) at SessionStrategy.authenticate (C:\cygwin64\home\Home\gethweb\node_modules\passport\lib\strategies\session.js:67:10) at attempt (C:\cygwin64\home\Home\gethweb\node_modules\passport\lib\middleware\authenticate.js:341:16) at authenticate […]

如何使用护照记住我与用户数据库

过去几天我一直在努力让护照记住我,并在我正在开发的一个节点js应用程序中运行。 我的护照本地策略(与护照本地mongoose工作)一直工作正常,但试图纳入记忆function被certificate是一个噩梦(由于我自己的无知)。 我花了最近几天的search,但我还没有find一个例子,使用护照,记住,我的战略,与护照本地和护照,本地,mongoose同时存储在数据库中的数据。 这里提供的例子使用一个虚假的数据库的令牌和用户(内存中/在服务器上),但我想知道我应该如何连接起来,以便我可以使用实际的mongodb数据库。 所以,我的基本问题是:如何修改上面链接的现有示例代码,以便用户和令牌存储在/从mongodb数据库中检索? 目的是在使用护照本地mongoose,护照本地和护照记住我时,而不是写定制策略或中间件。

Passport身份validation将失败并显示关联的模型

我在数据库build模方面做了一个补充,我想把我的用户附加到一个特定的公司。 我遵循Sequelize文档来创build用户和公司之间的一对一关系,但似乎已经搞砸了我的身份validation,因为代码的引入已经将每次提交的login提交给我的身份validation的failureRedirect部分码。 有没有人遇到类似的问题? 用户模式: var bcrypt = require('bcrypt-nodejs'); module.exports = function(sequelize, DataTypes) { var User = sequelize.define('user', { user_id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, firstName: { type: DataTypes.STRING, field: 'first_name' }, lastName: { type: DataTypes.STRING, field: 'last_name' }, email: { type: DataTypes.STRING, isEmail: true, unique: true }, password: DataTypes.STRING, organizationId: { type: […]

validation参数并redirect到已validation的参数?

我试图做一个有不同用户的应用程序。 用户可以login并查看和操作相同的数据。 我想为什么用相同的数据为每个用户创build一个完全不同的文档,只需要创build一个用户对象列表并对其进行身份validation即可。 我想要设置类似users/user1 users/user2路由。 用户1不能只是去url栏,并将用户1更改为user1我遇到了问题,使用户无法通过只改变它通过键入访问该url。 所以我有一个像这样的用户列表的文档: { list: 'userList', users: [ { password: 'pass1', username: 'user1' }, { username: 'user2', password: 'pass2' }, { username: 'user3', password: 'pass3' } ], address: '14453 ny 14456', desc: '3 floors', __v: 0, _id: 56baf181356641f01213295a } 我有这样的护照 passport.use("local", new LocalStrategy( function(username, password, done){ User.findOne({ "users": { $elemMatch :{username […]

节点js护照redirect结果在404

我正在通过电子邮件和密码进行/login,护照正确authentication,错误未被调用,然后返回res.redirect('/ profile')也会运行。 但是它返回404。 这些是我试过的两个login函数,它们都会导致“GET / profile 404”,即使当我做“GET / profile”时,它通常会返回200 // router.post('/login', passport.authenticate('local-login', { // successRedirect : '/profile', // redirect to the secure profile section // failureRedirect : '/login' // redirect back to the signup page if there is an error // })); router.post('/login', function(req, res, next) { passport.authenticate('local-login', function(err, user) { if (err) { return […]

Nodejs:用户信息/数据库和authentication(Passport)

我正在用Nodejs创build一个用户login系统。 我有几个问题,我似乎无法find答案(我正在使用本地策略使用护照)。 1)创build/存储用户帐户 护照文件指定了如下内容: User.findOne({username: username }, function(err, user){ if(err){return done(err);} if(!user){ return done(null, false, {message: "Incorrect Username."}); } if(!user.validPassword(password)){ return done(null, false, {message: 'Incorrect Password.'}); } return done(null, user); }); 要么 passport.deserializeUser(function(id, done){ User.findById(id, function(err,user){ done(err, user); }); }); 我不确定“用户”来自何处,因为我在尝试login时遇到“用户未定义”错误。 我假设我需要build立某种types的数据库,但我不知道该怎么做(文档和在线资源都不需要这样做)。 什么是“用户”? 我将如何去做一个“创build帐户”的事情,并将用户帐户存储到(本地)数据库? 2)之后获取用户信息/存储用户信息 用户login后,我需要获取与该帐户关联的特定数据,例如用户名。 用户也将有一个“排名点”,所以我需要一种方式来获得这一点。 当用户在我拥有的游戏中“胜出”时,用户获得“排名积分”,我也需要将其更新到特定的帐户。 我将如何做到这一点? 这是否也使用Passport完成(或Passport仅用于身份validation?)