Tag: passport.js

节点js护照js用户名字段错误和密码字段错误在表单提交时不显示

我正在尝试创build一个注册页面,所有function都正常工作。 但是,如果用户名字段和密码字段提交为空,则页面redirect到同一页面,但不显示错误来自哪里。 你可以请任何人帮我解决这个问题。 为什么这个发作? 我会把我创build的代码放在下面。 谢谢 passport.use('local-signup', new LocalStrategy({ usernameField : 'username', passwordField : 'password', passReqToCallback : true }, function(req, username, password, done) { process.nextTick(function() { if(req.body.first == "" || req.body.last == "" || req.body.email == ""){ return done(null, false, req.flash('signupMessage', 'Fields must be required')); } if(username == ""){ return done(null, false, req.flash('signupMessage', 'Username must […]

API路由可用于任何令牌JWT + PASSPORT

我正在为我的应用程序构buildAPI并尝试使用护照jwt。 我可以注册新用户并login(取回令牌),但是当我使用邮递员检查“受保护的”路线时,我可以使用任何这样的“任何” Pasport.js const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt; const User = require('../api/models/user/userModel'),// load up the user model config = require('../config/database'); // get db config file module.exports = (passport)=> { let opts = {}; opts.jwtFromRequest = ExtractJwt.fromAuthHeader(); opts.secretOrKey = config.secret; passport.use(new JwtStrategy(opts, function(jwt_payload, done) { User.findOne({id: jwt_payload.id}, (err, user)=> { if (err) { return […]

用我的本地数据库连接我的应用程序(node,express,mongo)并查询它

我用node.js,express.js,passport.js和mongodb构build一个小应用程序。 我是这个技术的新手,所以我试图在上传代码到服务器上之前先在本地进行testing,然后连接到mongolab。 现在我的问题是,我无法用我的mongo shell在本地查看或查询所有用户,因此,每次添加用户时,我都无法看到是否真的添加了它。 到目前为止我的代码如下: app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var port = process.env.PORT || 3000; var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var mongoose = require('mongoose'); var flash = require('connect-flash'); var session = […]

Azure AD – 检查安全组成员资格 – (Node.js,护照,Azure Web App)

我们正试图build立一个authentication/授权过程,具有以下要求: 身份validation:由Azure AD完成。 授权:只有特定安全组的成员应该被允许访问该应用程序。 虽然validation部分似乎没有问题,我们被困在授权部分。 我们正在使用快递和护照。 Azure AD一些令牌请求req.headers ,例如 X-MS-令牌AAD-访问令牌 X-MS-令牌AAD刷新令牌 X-MS-令牌AAD-ID令牌 目前,我们正在使用id-token和passport-azure-ad BearerStrategy来检查用户的安全组是否符合允许的安全组。 问题是:一旦id令牌过期,应用程序不会让我们访问应用程序。 假设在护照中设置{session: true}可以解决这个问题,我们启用了会话,但没有运气。 做了一些更多的研究,我发现这篇文章: 如何在Web应用程序中从Azure AD刷新ID令牌? ,它表示只有访问令牌可以被刷新,但ID令牌不能也不应该。 检查x-ms-token-aad-access-token和x-ms-token-aad-refresh-token ,我们发现它们没有JWT结构,例如 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1THdqcHdBSk9NOW4tQSJ9.eyJhdWQiOiJodHRwczovL.JZw8jC0gptZxVC-7l5sFkdnJgP3_tRjeQEPgUn28XctVe3QqmheLZw7QVZDPCyGycDWBaqy7FLpSekET_BftDkewRhyHk9FW_KeEz0ch2c3i08NGNDbr6XYGVayNuSesYk5Aw_p3ICRlUV1bqEwk-Jkzs9EEkQg4hbefqJS6yS1HoV_2EsEhpd_wCQpxK89WPs3hLYZETRJtG5kvCCEOvSHXmDE6eTHGTnEgsIk–UlPe275Dvou4gEAwLofhLDQbMSjnlV5VLsjimNBVcSRFShoxmQwBJR_b2011Y5IuD6St5zPnzruBbZYkGNurQK63TJPWmRd3mbJsGM0mf3CUQ 他们不包含任何点,因此没有通过智威汤逊validation。 导致以下问题: 根据指定的允许安全组检查用户安全组的正确方法是什么?

无法使用护照login – Nodejs

我正在关注Udemy教程中的一个,我陷入了login过程的最后一步。 我能够注册新用户,但无法login。 我input电子邮件地址和密码。 按提交button不pipe电子邮件地址或密码的值是正确的还是错误的,它触发failureRedirect方法的护照,再次拉login页,我已经把几个console.logs,但没有打印在控制台。 如果有任何随机的细节input,它应该抛出未知的用户错误。 我不知道是什么原因导致它无法正常工作,没有在控制台或浏览器中看到或发现错误。 表单 – login.ejs <form class="form-signin" action="/login" method="POST"> <h2 class="form-signin-heading">Please sign in</h2> <label for="inputEmail" class="sr-only">Email address</label> <input type="email" id="email" name="email" class="form-control" placeholder="Email address" required autofocus> <label for="inputPassword" class="sr-only">Password</label> <input type="password" id="password" name="password" class="form-control" placeholder="Password" required> <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> </form> 路线 – index.js var express = require('express'); […]

PassportJS本地策略不工作Withh MongoDB

我试图得到与PassportJS用户身份validation的处理,我不能让我的数据库设置工作。 我在没有 Mongoose的情况下使用MongoDB,我无法使LocalStrategy模块工作。 希望我的数据库查询不是太麻烦阅读。 本地策略: passport.use(new LocalStrategy( function(username, password, done) { //Fire up database mongo.connect("mongodb://localhost:27017/formulas", function(e, db) { if (e) {return next(e);} var col = db.collection("users"); //Do a database query to find a record by username col.findOne({"username": username}, function(err, user){ if (err) { return done(err);} if(!user) { return done(null, false, { message: "Please check your […]

如何自动login用户node.js + passport.js

我已经使用node.js和passport.js来创buildlogin应用程序。 我正在使用express-session和connect-mongo来维护会话。 我希望用户每次访问url时都直接移到主页。 只有当用户还没有login时,他才应该被引导到login页面。 我怎样才能做到这一点。 Login.js module.exports = function(passport){ passport.use('login', new LocalStrategy({ passReqToCallback : true }, function(req, username, password, done) { // check in mongo if a user with username exists or not User.findOne({ 'username' : username }, function(err, user) { // In case of any error, return using the done method if (err) return […]

Node.js未处理的承诺拒绝

我正在尝试使用passportloginnode.js,但是当数据库中没有的用户名尝试login时遇到问题。 我得到以下错误(node:9708) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: deferred.resolve is not a function 。 loginfunction: exports.login = function(username, password) { var deferred = Q.defer; MongoClient.connect(mongodbUrl, function(err, db) { var collection = db.collection('users'); collection.findOne({'username' : username}).then(function(result) { if (result === null) { console.log('User not found:', username); deferred.resolve(false); } else { var hash = result.password; […]

护照通过Google reCaptcha进行身份validation

我正在尝试将google reCaptchajoin到我的registry单的后端,这个后端已经有了护照authentication,代码如下: app.get('/signup', function(req, res) { // render the page and pass in any flash data if it exists res.render('signup.ejs', { message : req.flash('signupMessage') }); }); app.post('/signup', passport.authenticate('local-signup', { successRedirect : '/app', // redirect to the secure chat section failureRedirect : '/signup', // redirect back to the signup page if there is an error failureFlash […]

检查mongo db状态的Passport

我使用Passport lib在我的应用程序中pipe理身份validation。 目前,我使用的数据库是本地的: mongoose.connect(dbConfig.url, { useMongoClient: true }); // // dbConfig module.exports = { 'url' : 'mongodb://localhost/passport' } 问题是,我有可能查看我的应用程序的数据库状态? 我可以改变它吗?