Articles of passport.js

快递/护照 – passport.authenticate不是一个function

我是passport.js的新手。 我一直在关注以下博客注册用户 https://scotch.io/tutorials/easy-node-authentication-setup-and-local 但每次我运行服务器,我加载/register页面显示上述错误 TypeError:passport.authenticate不是module.exports(/home/punit/Documents/****/routes/index.js:10:34)在Layer.handle [作为handle_request](/ home / punit /文件/ **** / node_modules / express / lib / router / layer.js:95:5)在trim_prefix(/home/punit/Documents/****/node_modules/express/lib/router/index.js: 312:13)at /home/punit/Documents/****/node_modules/express/lib/router/index.js:280:7 at Function.process_params(/ home / punit / Documents / **** / node_modules /express/lib/router/index.js:330:12)(/home/punit/Documents/****/node_modules/express/lib/router/index.js:271:10)在/ home /在Layer.handle [作为handle_request](/ home / punit / Documents / **** / node_modules / express / lib)处理文件/文件/ **** / node_modules / […]

当使用passport-facebook时,mongoose-findorcreate写入重复的用户

我正在尝试使用passportJS来设置用户身份validation。 我决定使用这个名为mongoose-findorcreate的npm包,而不是写一个findOrCreate函数来自己处理护照。 所以现在我正在testing我的应用程序,我可以login使用我的Facebook的凭据,如预期的,但问题是,我在我的数据库中获取多个条目相同的Facebooklogin。 这是我的用户模型: let mongoose = require('mongoose'); let Schema = mongoose.Schema; let findOrCreate = require('mongoose-findorcreate'); // User schema definition let UserSchema = new Schema( { provider: { type: String, required: true }, id: { type: String, default: 'unknown' }, displayName: { type: String, default: 'unknown' }, name: { type: Object }, emails: { type: […]

Mongoose模型的静态/方法不在“this”中保存值

我试图用mongodb用户模型实施护照jsauthentication。 现在你可以看到,我已经在用户模型上创build了一个方法。 因此,当我在用户的实例上应用这个方法时,我期望“this”能够保存所有的用户对象。 但在这种情况下不会发生这种情况。 以下是一个工作代码,但我已经传递了一个额外的variables,使其工作。 但我不想这样做。 我在哪里犯错误? 下面是login的护照configuration文件 var passport = require('passport'); var User = require('../models/users'); var LocalStrategy = require('passport-local').Strategy; passport.serializeUser((user, done)=>{ done(null, user.id); }); passport.deserializeUser((id, done)=>{ User.findById(id, (err, user)=>{ done(err, user); }); }); passport.use('local.signin', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true },(req, email, password, done) => { User.findOne({email:email}, (err, user) => { if […]

在Twitter中使用passport.jsloginnode.js不工作

我正在使用passport.js的twitterloginnode.js。 但它不工作。 它是在一段时间内保持,然后返回没有错误或成功。 我的代码: module.exports.loginWithTwitter = function (req, res) { var passport = require('passport'); var Strategy = require('strategy'); var TwitterStrategy = require('passport-twitter').Strategy; // used to serialize the user for the session passport.serializeUser(function (user, done) { done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function (id, done) { User.findById(id, function (err, user) { done(err, user); […]

PassportJS events.js:160 //未处理的错误连接超时

我创build了一个MEAN Stack应用程序,最近我join了passportjs,起初当我的Mongo数据库是1GB(它有超过300万个条目)时,一切正常,但是最近数据库增长到了2GB,当护照被称为1 / 3次它在控制台上抛出这个错误: (calling passport) POST /login 200 3600.661 ms – 492 // successful login GET /uploads/defaultm4.jpg 304 1.295 ms – – (calling passport) POST /login 200 3334.007 ms – 492 // successful login (calling passport) events.js:160 throw er; // Unhandled 'error' event ^ Error: connection timeout at Db.<anonymous> (C:\Users\Andre\Desktop\bootcamp\voting-app\node_modules\m ongoose\lib\drivers\node-mongodb-native\connection.js:169:17) at emitTwo (events.js:106:13) […]

什么是身份validation策略

对于authentication策略是什么以及它扮演什么样的angular色似乎没有一个真正清晰的解释。 这是我认为可能是迄今为止(请纠正我,如果我错了): 看来,每个logintypes都有一个策略(谷歌,脸谱,本地等)。 创build策略,然后将其添加到护照对象,然后使用护照对象签署用于(未)指定时间的令牌。 但是,用户名和密码最初不是通过jwt或护照进行validation的。

节点JS +护照login

我试图configuration我的第一个节点的js应用程序使用护照login。 所以首先是第一件事。 我创build一个/app/config/express.js文件来configuration快速的东西。 所以我的app.js更简单: var app = require('./app/config/express')(); app.listen(3001, function(){ console.log("Servidor rodando"); }); 好,这很酷。 但! 我的express.js文件太大了。 也许你可以给我一些如何重构这个技巧? 我添加了一些问题的意见,我想让这个代码更好。 var express = require('express'); var load = require('express-load'); var expressValidator = require('express-validator'); var bodyParser = require('body-parser'); var passport = require('passport'); var Strategy = require('passport-local').Strategy; var session = require('express-session'); var flash = require("connect-flash"); module.exports = function() { // […]

使用Express和Passport JSredirect节点中的路由

比方说,我有一个路由定义使用快速路由器来呈现付款方式: router.get('/payment', (req, res) => { if (req.user) { res.render('payment', { user: req.user }); } else { res.redirect('/login'); } }); 如果我没有login,那么我应该被带到login页面,当我login时,我想被redirect到付款表单。 我的login会话是使用Passport构build的。 以下是我的POSTlogin路线的样子: router.route('/login').post((req, res, next) => { req.assert('email', 'Please sign up with a valid email.').isEmail(); req.assert('password', 'Password must be at least 4 characters long').len(4); var errors = req.validationErrors(); if (errors) { req.flash('errors', errors); return […]

isAuthenticated()函数不工作node.js护照

我正在创build在线课程应用程序,我只想要authentication的用户查看课程的详细信息和课程讲座。 我正在使用本地的护照authentication策略进行用户authentication。 我在我的路由中添加了isAuthenticated,但是,未经validation的用户仍然可以查看video讲座。 这是我的路线文件。 文件名: – courses.server.routes.js 'use strict'; /** * Module dependencies */ var coursesPolicy = require('../policies/courses.server.policy'), courses = require('../controllers/courses.server.controller'); var passport = require('passport'); var isAuthenticated = function(req, res, next) { // if user is authenticated in the session, call the next() to call the next request handler // Passport adds this method to […]

passport.js无法在实时生产服务器中存储会话

当我在端口8080 在本地运行服务器时,它在正常validation和序列化数据时正常工作。 但是,当我在现场制作上运行我的代码时,它通常是通过身份validation的,但不会将任何数据存储到会话中! 我不知道什么中间件应该为这件事情设置?