Tag: passport.js

在路由之间传递对象(护照)

想想我要做的事情应该是相对容易的,但是我放弃了这个线索,并且有潜力去做这件事。 使用节点设置节点应用程序并快速4.我使用护照进行身份validation。 跟着一个绝对惊人的指导scott.io很好地https://scotch.io/tutorials/easy-node-authentication-setup-and-local 这是一种魅力。 不过,我想分开我的路线,因为我喜欢保持整洁(这是一个谎言,但我打算保持谎言的生活)。 我的计划是有四套路线。 api(映射到/ api,使用文件./routes/api.js)索引(映射到/,使用文件./routes/index.js)auth(映射到/ auth,跟踪所有身份validation,callback为以及一些激活和其他位) 现在我的问题,我需要使护照可用的应用程序(或获得api.js和indes.js能够调用passport.js函数),我不能完全弄清楚如何。 我的计划是像这样发起护照: var passport = require('passport'); app.use(session({secret: 'Not-telling-you)', saveUninitialized: true, resave: true })); // session secret app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions app.use(flash()); // use connect-flash for flash messages stored in session //Configuring the passports require('./config/passport')(passport); 这应该给我护照在应用程序中可用 接下来加载路由模块 var auth = require('./routes/auth')(app, passport); var users = […]

了解PassportJS中的完成function

我正在尝试实现一个正常的login和注册模块,我很难理解done函数。 这里是我感觉负责完成function的行。 现在我想要做的就是返回相应的消息,如有一些服务器错误。 app.post('/user/auth/login', passport.authenticate('local-login'), function(req, res) { console.log("Login Request Successful"); if(req.user){ res.status(200).send(JSON.stringify({ 'msg' : "Successfully logged in" })); } else{ res.status(400) } //console.log(req.user); }); 这是在loginPassport后将用户对象附加到请求模块的情况。 但是,如何区分服务器错误和身份validation失败错误 这是我的身份validation中间件。 passport.use('local-login', new LocalStrategy({ passReqToCallback: true }, function(req, username, password, done) { Users.findOne({ 'emailId': username }, function(err, user) { if (err) return done(err); if (!user) return done(null, false); […]

passport.authenticate不是一个函数

你好,我在NodeJs是新的,我一直在遵循这个教程http://code.tutsplus.com/tutorials/authenticating-nodejs-applications-with-passport–cms-21619创build一个应用程序进行身份validation。 我试图按照教程(代码是在github https://github.com/tutsplus/passport-mongo )所有的结构和代码,但是当我在浏览器中打开我的应用程序,我得到错误这个错误 TypeError:passport.authenticate不是module.exports的函数(C:\ myApp \ routes \ index.js:24:34) 这是我的index.js路由文件 var express = require('express'); var router = express.Router(); 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 request […]

PassportJS + RestAPI + SPA

我使用ExpressJS来构buildRestAPI,客户端是SPA,并且通过PassportJS支持通过Google / FaceBook / GitHub / …进行身份validation。 我的问题,从社交logincallback将返回到RestAPI或SPA? 如果系统返回到RestAPI,那么如何将redirect到SPA上的主页。 另一种情况是,如果系统callbackSPA,RestAPI如何从客户端接收和validation令牌。 请让我知道常用的方法。 谢谢,

有关如何passport.js工作的问题。 具体关于user.id

我的model , doc或record没有id字段,或者您想要调用它的任何内容。 那么怎么done(null, user.id)作品。 我有一个_id但没有id 。 它看起来像一个护照对象被添加到我的会话与用户在数据库中的_id ,但它是如何得到_id是自动完成的? 在文档中说 在这个例子中,只有用户ID被序列化到会话中 它是如何得到的ID和它是如何得到用户? 我的代码中有类似的例子: passport.serializeUser(function(user, done){ done(null, user.id) }); passport.deserializeUser(function(id, done){ User.findById(id, function(err, user){ done(err, user); }) }); 获取用户ID需要哪些步骤? 我也有 passport.use("login", new LocalStrategy(function(username, password, done){ User.findOne({username : username}, function(err, user){ if(err){return done(err)} if(!user){ return done(null, false, {message : "no User has that name"}) } ……. 我使用passport.use()以某种方式将DB的用户连接到护照方法。 […]

快速护照会议不起作用

我正在构build一个Node应用程序,在这个应用程序中用户必须注册或login,然后当他们拖放一些元素(前端全部正常工作)时,我在数据库上存储他们的行为以及相应的userId。 我的理解是,一旦他们注册/login,我可以使用req.user来访问他们的ID并正确地存储他们的行动,但它不工作。 这是我的server.js文件中处理Passport的部分。 另外,我使用Sequelize作为ORM,但是所有处理数据库的东西在没有req.user部分的情况下都是完美的。 app.use(cookieParser()); app.use(bodyParser.json()); app.use(passport.initialize()); app.use(passport.session()); /****** Passport functions ******/ passport.serializeUser(function (user, done) { console.log('serialized'); done(null, user.idUser); }); passport.deserializeUser(function (id, done) { console.log("start of deserialize"); db.user.findOne( { where : { idUser : id } } ).success(function (user) { console.log("deserialize"); console.log(user); done(null, user); }).error(function (err) { done(err, null); }); }); //Facebook passport.use(new FacebookStrategy({ //Information […]

NodeJS – 护照给我404login错误

我刚刚实现了一个简单的login使用Passport.js和护照本地和一切似乎工作,除了最后的redirect。 当我用不好的证书login时,我得到一个错误,因为它应该发生。 但是,当我用正确的凭据login,我得到一个404错误没有明显的原因。 源代码太广泛了,所以你可以在GitHub上find它们: https : //github.com/JacobCZ/nodewiki (看看config / express,config / passport,models / user和views / auth)

用nodeJSlogin系统

我有我的login系统本地主机和注册页面正在工作,但不是login页面。 它不断显示我无效的密码。 顺便说一句我正在使用MongoDB作为我的数据库。 在我的MongoDB上,我可以查看已存储在mongo shell中的数据。 我很欣赏那些能够查看这些代码的人。 谢谢!! 图像: 显示无效的密码图像 这里是我的代码: app.js var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var exphbs = require('express-handlebars'); var expressValidator = require('express-validator'); var flash = require('connect-flash'); var session = require('express-session'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var mongo = require('mongodb'); […]

麻烦authentication

在使用护照本地策略执行我的restful apiauthentication时,我正面临一个混淆问题。 注意:当我在index.js中完成所有工作时,我的authentication工作已经成功。 但我想在类中使用更好的代码分离。 我有一个passport.js模块 // config/passport.js // load all the things we need var LocalStrategy = require('passport-local').Strategy; // load up the user model var mysql = require('mysql'); var dbconfig = require('./database'); var connection = mysql.createConnection(dbconfig.connection); module.exports = function(passport) { // passport needs ability to serialize and unserialize users out of session passport.serializeUser(function (user, done) […]

如何处理passport.deserializeUser()中的错误?

我有Express和Passport这样configuration: var express = require("express"); var site = express(); var flash = require("connect-flash"); var passport = require("passport"); site.use(require("cookie-parser")()); site.use(require("body-parser").urlencoded({extended:false})); site.use(require("express-session")(…)); site.use(flash()); site.use(passport.initialize()); site.use(passport.session()); 我有一个很好的deserializeUser的股票实现(我使用MySQL支持的local身份validation通过Bookshelf): var db = require("./database.js"); // exports models eg db.User passport.deserializeUser(function(id, done) { db.User.findById(id).then(function (user) { done(null, user); }).catch(function (err) { done(err, null); }); }); 我遇到了以下特定问题:当从数据库中删除login用户(例如,当站点pipe理员删除用户时),反序列化会失败,如预期的那样, CustomError("EmptyResponse")书架。 但是,我不知道如何处理。 done(err, null)最终只会导致错误消息和堆栈跟踪以HTML格式返回给客户端。 问题是: 如何从deserializeUser提供自定义,优雅的error […]