Articles of passport.js

用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 })); 谢谢你的帮助!

SPA(angular度)身份validation与OAuth2提供商的独立域上的API和身份validation服务器; Google,Facebook

我有一个angular度的应用程序运行在独立的域比我的api / auth服务器。 对于本地的例子:我的angular度应用程序是在localhost:9000,我的api / auth服务器是在localhost:3000。 或者,如果这是公开的,例如在CDN上的angular色。 我想使用服务器/代码stream与Google和Facebook进行身份validation。 我见过的例子使用窗口popup窗口或cookies。 由于CORS问题,Cookies不可能出现问题,我希望这个Web API也可以在移动应用程序中使用。 我发现Sattelizer,这工作良好,但我正在寻找与护照一起工作的解决scheme。 本质上是一种用于交换访问令牌的授权代码(通过angular度应用程序传递)的通行证策略,而不是直接从后端请求访问令牌。 如果这不存在,我可能会尝试做一个。

passportjs,摩卡,超级ECONNREFUSED

我正在尝试使用摩卡,超级terminal和护照进行身份validation,但是我收到拒绝连接的错误消息。 我认为这与我开始我的应用程序的方式… var testUser = { "email": "test@test.com", "password": "test" }; var app = require('../../server'); var request = require('superagent'); var user = request.agent(app); describe('authentication api ', function() { it('should login a user', function(done) { user.post('/login') .send(testUser) .end(function(err, res) { if(err) throw err; done(); }); }); }); 这个用户确实存在于我的mongo数据库中。 在我的服务器文件,这是更高的两个层次: module.exports = app.listen(port, function() { console.log('app listening […]

不工作:PingFederate + Passport.js Ping

我试图用PingFederate作为我的Auth服务器和passport-ping npm进行login。 我做了所有通常的configuration,即 app.get("/auth/ping", passport.authenticate("ping")); app.get("/auth/ping/callback", passport.authenticate("ping",{ failureRedirect: '/login'}), function(req,res){ console.log(profile); res.render("profile", {user : req.user}); } ); 和 // Ping Strategy passport.use(new PingStrategy({ host: 'blahblah.com', port: 9031, clientID: config.ping.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.ping.callbackURL }, function(accessToken, refreshToken, profile, done) { User.findOrCreatePingUser(profile, done); })); 我甚至可以授予PingFederate的许可,并从那里重新定向。 但是,当Passport试图parsing这个授权码时,会抛出以下错误: Express 500 TokenError: Invalid client or client credentials at Strategy.OAuth2Strategy.parseErrorResponse (c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\lib\strategy.js:298:12) […]

捕捉/处理MySQL重复input错误 – 使用NodeJS,PassportJS,Express,连接闪存,Heroku

我正在做一个节点应用程序的用户注册,从这个例子开始,但是使用MySQL数据库而不是MongoDB。 用户表中的多列具有唯一性约束。 这是创build表的SQL代码: CREATE TABLE `' + dbconfig.database + '`.`' + dbconfig.users_table + '` ( \ `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, \ `username` VARCHAR(60) NULL, \ `password` CHAR(60) NULL, \ `facebook_id` VARCHAR(60) NULL, \ `facebook_token` CHAR(223) NULL, \ `facebook_name` VARCHAR(100) NULL, \ `facebook_email` VARCHAR(100) NULL, \ `google_id` VARCHAR(60) NULL, \ `google_token` CHAR(67) NULL, \ […]

护照login回拨丢失会话

我有下面的代码存储用户引用HTTP头到会话,所以,在facebook护照login发生后,我可以知道他试图访问哪个页面,并正确地redirect我的用户: function facebookAction(req, res, next){ var referer = req.headers['referer']; req.session.redirectLogin = url.format(parsed, true); passport.authenticate('facebook', {scope: ['user_birthday', 'user_location', 'email']})(req, res, next); } 问题是,在Facebook回叫我的URL后,会话不再被设置: function facebookCallbackAction(req, res, next){ var redirectLogin = req.session.redirectLogin; console.log(req.session.redirectLogin); // this is undefined passport.authenticate('facebook', { successRedirect: redirectLogin + 'login=1', failureRedirect: redirectLogin + 'loginError=1'})(req, res, next); } login发生,但由于某种原因我失去了会话。 有没有人之前通过这个问题? 我使用sails作为框架