Tag: 护照

validation邮件后,护照无法使用

我使用passport.js和mailgun-validate-email来尝试validation电子邮件,然后根据该电子邮件创build一个用户帐户。 我可以得到它来validation电子邮件,但它不会完成POST请求实际创build用户。 它最终会显示一个日志,但是它甚至不会给出我觉得奇怪的状态代码。 我正在用摩根来看这个。 通常情况下,这只是-状态码将在哪里。 Passport.use注册中间件 passport.use('signup', new LocalStrategy({ usernameField: 'email', passReqToCallback : true }, function(req, email, password, done) { var findOrCreateUser = function(){ console.log(req.body.email); User.findOne({ email: req.body.email }, function(err, existingUser) { if(err){ console.log(err); } if (existingUser) { req.flash('form', { email: req.body.email }); return done(null, false, req.flash('error', 'An account with that email address already exists.')); […]

Express Passport.js不保留会话中的用户对象

我有一个运行在端口3000上的Express应用程序。前端运行在端口80上,所以这是一个CORS应用程序。 用户存储在SQL服务器数据库中。 我使用护照作为本地策略的authentication方法,以及快速会话中间件。 该应用程序是一个单页面应用程序,发送到服务器的所有请求都通过ajax完成。 用户在页面上login并且发送证书,并且如果validation成功,则用户ID以及用户名和FullNmae应该被保持到会话。 我有很多这样的错误:最重要的是,login后,快递保存使用护照的用户名和其他数据到一个新的会话,并返回一个HTML片段,以取代页面上的身体标记。 但是,为了testing用户对象是否存在,我调用/ create-user路由,它说用户对象不在那里。 此外,新的会话开始于每个请求(我检查日志,并看到每次显示不同的会话ID)。 不仅如此,在某一时刻,我能够在浏览器中看到会话cookie,但是我再也看不到它了。 我试图回到我可以看到cookie的地步,但仍然没有出现! 我已经把我的头几个小时,不知道为什么deserializeUser没有被调用,为什么数据不被持久。 我哪里错了? 注意:一些明显的代码省略(app.listen(),require语句等) /* —— CONFIGURATIONS —— */ const app = express(); const mssqlConfig = JSON.parse(fs.readFileSync("mssql-config.json", "utf8")); passport.use(new LocalStrategy( function loginAuthentication(username, password, done) { let connPool = new mssql.ConnectionPool(mssqlConfig); connPool.connect(error => { if (error) {console.log(error); return done(error);} ps = new mssql.PreparedStatement(connPool); ps.input('username', mssql.NVarChar(20)); ps.input('password', […]

nodejs护照login

我使用mongoose在nodejs上设置了护照,以允许用户login并创build新帐户。 创build新帐户正在工作,但login部分没有。 users.js var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var mongoose = require('mongoose'); var User = require('../models/user'); router.get('/login', function(req, res, next) { res.render('login', { 'title': 'Login' }); }); passport.serializeUser(function(user, done){done(null, user);}); passport.deserializeUser(function(id, done){ User.getUserById(id, function(err, user){ done(err, user); }); }); passport.use(new LocalStrategy( function(username, password, done){ User.getUserByUsername(username, function(err, user){ if(err) throw err; if(!user){ console.log('Unknown […]

nodejs中的护照-jwt总是返回未经授权的

以下是演示凭证的示例代码: var express=require('express'); var app=express(); var bodyparser=require('body-parser'); var passport=require('passport'); var morgan=require('morgan'); var jwt=require('jwt-simple'); app.use(bodyparser.urlencoded({extended:false})); app.use(bodyparser.json()); app.use(morgan('dev')); app.use(passport.initialize()); app.get('/',function(req,res){ res.send({'status':'success'}); }); var jwtStrategy=require('passport-jwt').Strategy; var ExtractJwt = require('passport-jwt').ExtractJwt; var opts = {}; opts.jwtFromRequest = ExtractJwt.fromAuthHeader(); opts.secretOrKey = 'admin686d86'; opts.issuer = "localhost"; opts.audience = "localhost"; passport.use(new jwtStrategy(opts,function(jwt_payload, done){ console.log("In JWT Strategy"); console.log(jwt_payload); return done(null,{id:203}); })); app.get('/login',function(req,res){ var token=jwt.encode({id:203},opts.secretOrKey); […]

诺言创build,但不是从返回。 Knex / Bookshelf

每当我点击需要validation的路由时,我在控制台中都会收到警告消息。 (node:940)警告:在xxxxxx \ app \ config \ passport.js:15:19中的处理程序中创build了一个承诺,但未从其返回,请参阅http://bluebirdjs.com/docs/warning-explanations。 html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it at .fetch(xxxxxx \ node_modules \ bluebird \ js \ release \ method.js:13:13 ) 我configuration了这样的护照: const JwtStrategy = require('passport-jwt').Strategy; const ExtractJwt = require('passport-jwt').ExtractJwt; const secret = process.env.SECRET; var opts = {} function passportConfig(db, passport) { opts.jwtFromRequest = ExtractJwt.fromAuthHeader(); opts.secretOrKey = secret; passport.use(new JwtStrategy(opts, payloadCallback.bind(null, db))); } function […]

在Express js中检查没有密码的Active Directory

我正在使用express js 4.1 。 我想访问没有用户和pipe理员凭据的Active Directory。 我只想要检查在根域连接的用户名。 如果用户存在于域中,我将从login页面将我的应用程序redirect到主页面。 我已经尝试了大部分的npm的活动目录, passport-windowsauth , passport-ldapauth 上述方法都不起作用,因为它们都需要某个pipe理员或用户的凭证详细信息。 请build议我一个很好的方法来访问活动目录用户名和npm绝对适合我的要求。

脸书authentication与护照。 无法读取未定义错误的属性“0”

我正在学习使用Facebook将社交authentication添加到应用程序中。 一切工作正常,直到我真的尝试login到我的testing应用程序与Facebook。 而不是路由到configuration文件页面,我得到这个错误: Cannot read property '0' of undefined TypeError: Cannot read property '0' of undefined at Strategy.generateOrFindUser [as _verify] (C:\projects\Side Projects\passyapp\app.js:16:19) at C:\projects\Side Projects\passyapp\node_modules\passport- oauth2\lib\strategy.js:193:24 at C:\projects\Side Projects\passyapp\node_modules\passport- github\lib\strategy.js:174:7 at passBackControl (C:\projects\Side Projects\passyapp\node_modules\oauth\lib\oauth2.js:134:9) at IncomingMessage.<anonymous> (C:\projects\Side Projects\passyapp\node_modules\oauth\lib\oauth2.js:157:7) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9) 下面是从我的APP.JS文件中的一个SNIPPET: function […]

Facebook chatbot和身份validation

我有一个应用程序,用户可以使用Facebooklogin。 我有用户的authentication令牌,有效期为30天。 我正在使用护照。 目前,我要求绝对最低限度的权限(仅限电子邮件),以便我的身份validation应用程序不需要validation。 现在…我需要写一个聊天机器人偶尔会写入用户身份validation。 所以,机器人需要发起对话。 这实际上是用户正在积极关注的通知。 鉴于我知道如何写chatbot本身,我想知道…这样做甚至可能吗? 如果这是不可能的,是否有可能“链接”,然而通过比较他们的Facebook用户ID,启动与我的机器人与其中一个login用户聊天? (恐怕不是,因为Facebook的用户ID似乎被限制在应用程序!)

如何使用Node和Passportvalidation非空字段?

我需要validation非空字段的login(发布请求),但我得到这个错误: TypeError: req.checkBody is not a function at D:\IDoo projects\ExpressGenerado\config\routes.js:76:9 这是我的路线文件: app.post('/login',function(req,res){ req.checkBody('email', 'Email is required').notEmpty(); req.checkBody('password', 'Password is required').notEmpty(); var errors = req.validationErrors(); if (errors) { res.render('signup',{message: req.flash('loginMessage')}); } else{ passport.authenticate('local-login', { successRedirect : '/profile', // redirect to the secure profile section failureRedirect : '/login', // redirect back to the signup page if there […]

节点:发送JSON Web令牌到页面redirect的客户端

我正在使用Node Express来构build我的后端服务器。 此外,身份validation是我的应用程序与Passport-SAML发生。 我正在使用JWT来维护用户会话。 所以stream量是, 用户在login端点中调用 他们被redirect到SAML身份提供者。 提供程序validation用户,并在callbackURL中将授权发送回服务器。 我正在使用POSTcallbackURL进行身份validation,然后为用户创build令牌以执行授权和会话pipe理。 callbackPOST端点也有一个页面redirect。 从目前为止我学到的是res.status和res.redirect不能在相同的端点出于显而易见的原因。 我一直在试图find正确的方法,任何帮助,不胜感激。 router.route('/login') .get( passport.authenticate(config.passport.strategy, { successRedirect: '/', failureRedirect: '/login' }) ); router.route(config.passport.saml.path) .post( passport.authenticate(config.passport.strategy, { failureRedirect: '/', failureFlash: true }), function (req, res) { res.redirect('/'); var token = Verify.getToken(req.user.saml); return res.status(200).json({ status: 'Login successful!', success: true, token: token }); console.log(token,'yes'); } );