Tag: passport.js

Express 4 +护照,req.user未定义 – 函数调用顺序?

我遇到了一个非常奇怪的问题。 我正试图让快递+护照工作。 由于绝大多数的在线示例都是针对快递3的,因此这个过程花了我一些时间 – 最终我获得了Google身份validation的function。 我试图将Google帐户绑定到本地帐户,该帐户需要从MongoDBsearch帐户。 以下是可用的代码部分: //Serialize function passport.serializeUser(function(user, done) { done(null, user); }); //Deserialize function passport.deserializeUser(function(obj, done) { done(null, obj); }); //Strategy passport.use(new GoogleStrategy({ returnURL: 'http://localhost:8000/auth/google/return', realm: 'http://localhost:8000/' }, function(identifier, profile, done) { process.nextTick(function() { profile.identifier = identifier; return done(null, profile); }); } )); 以下代码已经过validation可以使用。 一切都像一个魅力。 但是,当我修改代码如下: passport.serializeUser(function(user, done) { done(null, user.id); }); […]

将Flash消息暴露给Handlebars模板

我正在构buildSPA:Backbone.js,Node.js,Mongo。 我使用Passport.js进行身份validation,并想知道如何将req.flashvariables暴露给我的Handlebars模板? 在这种情况下,如果用户试图用电子邮件login,我想在我的视图中公开flashvariables“signupMessage”。 在我的Express服务器上: app.use(function(req, res, next){ res.locals.flash = req.flash next(); }); 护照本地策略: passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', petnameField : 'petname', passReqToCallback : true // allows us to pass back the entire request to the callback }, function(req, email, password, done) { process.nextTick(function() { User.findOne({ 'local.email' : email }, function(err, user) […]

Nodejs + Passport + MySQL

我想弄清楚如何使用nodejs + Passport + MySQL。 看起来好像每个教程都使用mongoDB,我不想这样做。 事实上,这种types的快速search会产生像( http://nodejsrocks.blogspot.com/2012/04/nodejs-expressjs-mysql.html )这样的网页和一个人(youtube video)( https:// www .youtube.com / watch?v = jGBbMVJx3h0 )除了login之外什么都不做,谁知道他真的在用什么,但是页面已经有了3K +的视图。 我希望一些开发人员能够看到这个,也许有一种用途,就像一个全面的非MVCtypes的事情与MySQL。 我之所以这样做,是因为我只想获得iOS和Android的function,而不需要大量的脚手架开销。 只是数据库和服务器端脚本处理查询和返回的JSON对象的手机。 所以呢,这样说呢,能有一个有实际经验的人请帮帮我(而世界其他地方都没有深入的教程,因为我们没有使用mongoDB和完整的脚手架来做类似的事情) 。 我为“TwitterStrategy”设置的表格是用户(id(PK),用户名,电子邮件,salt,密码)和twitterusers(id),名称,屏幕名称,位置,说明,url,img, tokensecret)。 这是我想要从一个单一的main.js文件去的代码。 我知道这不是最佳做法,而且我计划在稍后清理它,但现在,我想了解我所缺less的东西,并使其工作。 如果有人能帮忙,我将非常感激,而且我很确定其他人也会觉得这很有用。 谢谢。 var http = require('http'), mysql = require('mysql'), url = require('url'), crypto = require('crypto'), express = require('express'), flash = require('connect-flash'), passport = require('passport'), TwitterStrategy = require('passport-twitter').Strategy; […]

无redirect安全的护照login(Node.js)

我目前正在做一个Web应用程序,当用户login时,我不希望页面被redirect – 相反,我希望客户端只需更新当前页面(我想过使用AJAX请求)。 我正在使用带有护照的nodejs后端作为我的身份validation中间件。 客户端: 我目前有我想检查login状态的页面,只需调用一个函数onload: function fetchLoginStatus(){ var request = new XMLHttpRequest(); request.open("GET", "/checkLogin.json", false); request.send(); } 服务器端: 在服务器中,我有以下路线: app.get('/checkLogin.json', passport.authenticate('local-login'), function(req, res){ res.send(req.user.username); }); 回到客户端,我检查这个响应数据,看看用户是否成功login。 这安全吗? 使用JSON进行身份validation? 有没有更好的方法来完成这个?

为什么在使用Passport / Node Express的OAuth2Strategy进行身份validation时遇到TokenError?

我试图与Express(4)一起使用Passport JS的OAuth2Strategy。 我redirect到login后,它成功导航回到我的callbackurl,在这一点上,我得到以下错误: TokenError: Invalid client or client credentials at OAuth2Strategy.parseErrorResponse (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:298:12) at OAuth2Strategy._createOAuthError (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:345:16) at /www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/lib/strategy.js:171:43 at /www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:124:9) at IncomingMessage.<anonymous> (/www/az-avatarz-server/node_modules/passport-oauth/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:919:16 at process._tickDomainCallback (node.js:463:13) 我的护照configuration如下: passport.use("avatarz", new OAuth2Strategy({ authorizationURL: authorizationURL, tokenURL: tokenURL, clientID: clientID, clientSecret: clientSecret, callbackURL: callbackURL }, function (accessToken, refreshToken, profile, done) { User.find({ […]

用passport.js进行简单的authentication变成无限循环

我敢肯定,我正在做一些错误的事情,因为我对这项技术缺乏经验。 所以在这里我试图validation我的用户。 在server.js我有以下几点: var express = require('express'); var app = express(); var port = process.env.PORT || 8080; //var configDB = require('./config/database.js'); require('./config/environement.js')(app, express); require('./config/routes.client.js')(app); //setting all modules routes require('./api/oAuth/routes.js')(app); app.listen(port); 在environement.js中: module.exports = function(app, express) { app.configure(function() { var path = require('path'); var mongoose = require('mongoose'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; /* […]

如何使用Passport.js和节点单页面的应用程序

我不认为有这样的问题让我恼火。 似乎有0个地方看起来或回答这个。 我想要做的就是获得护照拦截对“/ login”和“/ getloginStatus”的调用。 login时,我只想使用Json对象作为{username / password}的参数。 当我login时,我只想返回true / false,如果用户在他们的浏览器中有一个身份validation票证。 这是我有,但它丝毫不奏效,一半的问题似乎是我的本地战略实施永远不会被称为…. var passport = require('passport') , LocalStrategy = require('passport-local').Strategy; passport.use(new LocalStrategy( function(username, password, done) { console.log('this NEVER gets called'); } )); app.post('/api/authentication/login', function(req, res, next) { passport.authenticate('local', function(err, user, info) { console.log('this does get called but so what?'); if (err) { return next(err); } […]

如何在openidp中创build和注册服务提供者元数据文件

我是saml协议的新手,这是我的第一个saml实现,因此对saml没有深入的了解。 我想知道我应该如何在nodejs中创buildsp元数据对象? 目前我使用nodejs,passport,passport-saml来实现sp和IDP中的saml 2.0协议我使用的是openidp( https://openidp.feide.no ),我也想知道如何注册sp元数据文件或者在idp中的对象。 要问的原因是因为我读了,发现sp应该使用元数据注册IDP(反之亦然),这里是链接: http://samlcomponent.net/how-to-create-saml-metadata-xml-for-service-provider/ “如果你有一个提供SAML 2.0支持的服务提供商,你可以使用自我pipe理界面将你的服务提供商连接到Feide OpenIdP”你可以在openidp网站上查看它。

如何通过Passport和nodeJS在angularJS前端显示用户信息

我试图复制这个本地身份validation与护照教程 。 但用angularJS前端,而不是EJS,直到现在一切正常,但我有一个问题,当我想显示用户数据在configuration文件页面(成功login后) 我正在谈论这段代码 // ===================================== // PROFILE SECTION ===================== // ===================================== // we will want this protected so you have to be logged in to visit // we will use route middleware to verify this (the isLoggedIn function) app.get('/profile', isLoggedIn, function(req, res) { res.render('profile.ejs', { user : req.user // get the user out of […]

在angular.js中访问连接flash消息

我正在调整一些以传统非SPA页面加载为前提的代码,并向由连接闪存中间件生成的用户显示Flash消息。 它通过传递一个呈现在EJS文件中的对象来实现这一点。 我的应用程序是有angular度的,我没有在后端的模板引擎,并希望避免使用一个。 我怎样才能使angular度意识到这些Flash消息? 这里是上下文:passportjs错误redirect到/注册 // process the signup form app.post('/signup', passport.authenticate('local-signup', { successRedirect : '/profile', // redirect to the secure profile section failureRedirect : '/signup', // redirect back to the signup page if there is an error failureFlash : true // allow flash messages })); 谢谢你的帮助!