Tag: passport.js

用户帐户激活,电子邮件确认和Passport / Node.Js邀请

我想为在Passport / Neo4J上运行的用户authentication系统设置三件事情: 1)手动用户帐户激活(以便pipe理员); 2)只邀请帐户的创build; 3)激活之前的电子邮件确认帐户; 我想知道是否你知道任何易于使用的Passport插件(我还没有find自己的,但也想要你的build议),也是 – 实现它的最好方法是什么(也许你已经完成/看到它,所以你可以分享代码?) 谢谢!

在passport.js或session中的某处添加用户对象中的额外信息

我想在来自mongodb的用户对象中添加自定义键,这将被passport.js使用,但是我想知道为什么我不能将更多的键添加到该对象中,这里是我的代码。 passport.use(new LocalStrategy( function(username, password, done) { Users.model(false).findOne( {email:username,password:encodePassword(password) }, function(err, user) { if( err ){ // validation failed console.log('Error Occurred'); return done(err); } else if(user != null){ user['customKey'] = "customValue"; // it is not setting console.log(user); return done(null, user); } else { return done(null, false, { message: 'Incorrect username.' }); } }); } )); […]

护照令牌authentication*无*数据库会话

我正在寻找一种方法来使用Passport.js的Twitter策略,而不使用数据库中的会话集合/表。 原因是我们将会话集合中的所有数据都保存得很大,每当用户发出请求时我们都会保存数据库往返,因为我们不必每次都去DB去获取会话数据。 无论如何,我们应该能够使用令牌(JSON Web令牌)来validation用户,这篇文章如何描述: https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens 但是我很困惑,为什么没有一个简单的方法来做这个护照? (这篇文章没有护照什么都可以做 – 但是Passport已经包括了这个?)。 也许我正在推翻这一点,而这样做只是为了省略我在Express中使用DB会话的呼叫,然后Passport已经足够聪明来处理JWT了? 不知何故,我怀疑这一点。 例如,在我的Express服务器中注释掉这些代码当然是不够的。 //app.use(expressSession({ // secret: 'arrete_x_paulette', // store: new MongoStore({mongooseConnection: mongoose.connection}), // saveUninitialized: true, // resave: true, // cookie: { // secure: false, // maxage: 6000000 // }, // proxy: false //})); 和 //app.use(passport.session()); 那么使用护照就足够了? 为什么有人会使用基于JWT的身份validation来使用存储在数据库中的会话?

用户点击后退button,而会话仍然被authentication,并被redirect到node.js中的login页面

我有一个简单的Web应用程序,它有一个login屏幕和一个活动页面,只有当用户提供有效的凭据时才可以访问。 假设用户点击有效凭证login,并被redirect到活动页面。现在,用户不会点击注销,而只需点击浏览器的后退button并返回到login页面。 这种行为显然是非直观的,我假设用户login时,他/她点击后退button,保持在同一页面,而不是回到login页面。 function loginUser(req, res) { if (req.session.auth) // if user is still authenticated { res.redirect('/activity'); } res.render('login'); } 这是我目前使用的一种简单的方法,总是将用户redirect到活动页面,但是我觉得这是一个资源浪费的方法,因为存在不必要的redirect。 我的问题是,这是执行上述行为的标准和最干净的方式还是有更好的机制? 我正在使用护照进行身份validation并存储jwt令牌。 编辑:重新迭代上面的解决scheme工作只有浏览器没有caching启用,相反,login路由控制器甚至没有被调用,因为浏览器已caching页面。 我正在寻找更强大的东西。 我认为将浏览器硬编码为不在生产环境中caching页面是一种好的做法。

Angular JS + Node JS + Passport + Spring OAuth2authentication/授权

我是PassportJS和AngularJS的新手,我对如何继续这个授权有疑问。 我有Spring REST API由Oauth2保护,但是我必须像这样发送用户凭证: [http://localhost:8080/myapp/oauth/token] grant_type=password&username=email&password=password&client_id=09e749d8309f4044&client_secret=189309492722aa5a&scope=read 在客户端我的应用程序我使用护照,我想授权/authentication我的用户,我怎样才能为此创build一个战略? 我将在这里发送我的服务器configuration和我的安全库。 Server.js var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = fs.readFileSync(__dirname + '/cert/privatekey.pem').toString(); var certificate = fs.readFileSync(__dirname + '/cert/certificate.pem').toString(); var credentials = {key: privateKey, cert: certificate}; var express = require('express'); var config = require('./config.js'); var passport = require('passport'); var security = […]

如何更新由passportjs设置的req.user会话对象?

我试图做很多天,但所有的testing失败… 我的平台上的用户使用passportjs策略(paypal,facebook,google …)连接它们。 当用户连接时,我在标题的右侧写上他的昵称。 头文件的html代码是从handlebars模板生成的,当这个部分由expressjs服务的时候,我把req.user会话对象发送给模板,以便编写昵称和其他信息。 顺便说一下,这工作的很好,但我有一个问题,当用户从他的configuration文件更新他的昵称,我不能更新服务器端的会话对象,如果用户重新加载页面,旧的昵称再次出现。 而且我不想每次用户加载一个页面都要求数据库的用户信息,所以我想保留这个configuration: // — Passport session setup passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) { done(null, obj); }); 我的中间件设置当地人: // — Set accessible datas from the template res.locals = _.extend(res.locals, { user: req.user, query: req.url, title: app.config.title, url: app.config.url }); 我失败了: // Trying to update req.user directly : not […]

用sqlite的node.js护照autentification

它可能使用node.js + passport和sqlite数据库与会话? 所有的例子只有mongoDb。 我想在sqlite中收集所有的数据。

使用带有Google身份validation的节点护照来限制login到特定的域

我正在实施Google Auth上的一项内部服务。 这是一个带有Node后端的JS客户端应用程序。 我select使用Passport.js和Passport-google-oauth策略的Node模块。 我已经成功地工作,但有一件事仍然让我困惑。 我想确保我的应用程序只允许公司员工login。 据了解, 根据官方文档 ,您可以使用名为“hd”的参数来限制域的login。 首先,您在Passport.js的上下文中发送该参数的位置? 我只是不明白在哪里放在代码中。 如果有帮助,我一直以来都是按照passport-google-oauth提供的例子 。 其次,从理论上讲,这一切是如何工作的? 它在Google方面,他们拒绝任何人试图访问我们公司以外的域名的应用程序。 还是在我身边,我需要检查用户login的域名是什么?

用PostgreSQL安装PassportJS

是否有与PostgreSQL设置PassportJS的演练教程(即用PostgreSQLreplaceMongoDB)?

找不到模块的“护照本地”错误

我正在使用护照在node.js 在我的app.js var passport = require('passport') require('./config/passport').boot(passport, config) 在passport.js var LocalStrategy = require('passport-local').Strategy 运行应用程序,我得到这个错误消息 module.js:340 throw err; error:Cannot find module 'passport-local' at Object.<anonymous> <F:\work\config\passport.js:2:21> 我在F:\ work \ node_modules中安装护照。 即使我把这个 var LocalStrategy = require('passport-local').Strategy 正确的 var passport = require('passport') 我仍然得到同样的错误 任何想法为什么?