Tag: passport.js

如何使用客户端模板的护照js?

我正在使用护照js来处理一些身份validation。 不过,我也使用angular度$路线服务来处理我的模板在客户端。 因此,我不确定如何继续使用护照,因为doc页面上的示例假设服务器端模板。 例如, app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true }) ); 所以基于此,“/”和“/ login”似乎是为模板提供服务,而不仅仅是对REST式查询的响应。 我正在做的事情,我的模板发生在客户端。 在我的angular度文件,设置一切 $routeProvider .when('/', { templateUrl: 'templates/login.html', controller: 'MainCtrl' }) .when('/home', { templateUrl: 'templates/home.html', controller: 'MainCtrl' }); 看来我正在努力混搭,而不是真正理解任何一种做事的方法。 所以我知道我可能已经把这个可怕的措辞说到目前为止,但是我想要做的就是这样的事情 html(login.html) <h3> Login </h3> <form action= "login" method="post"> Username:<br> <input type="text" name="username" value=""> <br> Password:<br> <input type="password" name="password" value=""> […]

检查用户是否使用PassportJS / ExpressJSlogin

我有一个build立在MEAN堆栈上的Angular应用程序,使用Passportlogin和authentication用户。 我有点认识如何工作的困惑。 我有一个Angular通过$http调用的路由来检查用户是否login(因此可以访问某些页面)。 路线如下所示: // route to test if the user is logged in or not app.get('/loggedin', function(req, res) { res.send(req.isAuthenticated() ? req.user : '0'); }); 从我读过的(很less,我无法在护照文档中的任何位置findisAuthenticated() …),Passport应该为我的用户创build一个持久会话。 这在大多数情况下是可行的,但是如果closures我的Chrome应用程序/重置我的电脑,我必须重新login。 我假设使用Passport将意味着我不需要创build一个散列cookie来存储login信息。 不是这样吗? 其他潜在的原因 :目前我正在开发,并经常重启服务器。 Passport会话不会通过服务器重启持续吗? 编辑:这是我在app.js会话configuration: var session = require('express-session'); app.use(session({ secret: 'heregoesasupersecretsecret' })); // session secret app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions app.use(flash()); // use […]

req.isAuthenticated()使用NodeJS,Express和PassportJS返回false

req.Authenticated总是返回false,但validationinput错误的用户名和密码显示完美。 这是passportjsauthentication码 passport.js passport.serializeUser(function(user, done){ done(null, user.id); }); passport.deserializeUser(function(id, done){ RegisterList.findById(id, function(err, user){ console.log('deserializing user:', user); done(err, user); }); }); /* Customer Login Config */ passport.use('customer-login', new LocalStrategy({ usernameField : 'username', passwordField : 'password', passReqToCallback : true }, function(req, username, password, done){ process.nextTick(function(){ RegisterList.findOne({'mobile_no' : username}, function(err, user){ if(err) return done(err); if(!user) return done(null, false, […]

Passport身份validation将失败并显示关联的模型

我在数据库build模方面做了一个补充,我想把我的用户附加到一个特定的公司。 我遵循Sequelize文档来创build用户和公司之间的一对一关系,但似乎已经搞砸了我的身份validation,因为代码的引入已经将每次提交的login提交给我的身份validation的failureRedirect部分码。 有没有人遇到类似的问题? 用户模式: var bcrypt = require('bcrypt-nodejs'); module.exports = function(sequelize, DataTypes) { var User = sequelize.define('user', { user_id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, firstName: { type: DataTypes.STRING, field: 'first_name' }, lastName: { type: DataTypes.STRING, field: 'last_name' }, email: { type: DataTypes.STRING, isEmail: true, unique: true }, password: DataTypes.STRING, organizationId: { type: […]

Passport + JWT + Socket.IO身份validation

我正在寻找在我的KOA NodeJS应用程序中使用Socket.io实现JWT身份validation的最佳方向。 我在socketio + jwt上find了一个很好的回购 ,但是作者并没有使用护照也没有使用koa。 我想我已经有了一个好的开始,但是我想知道在使用智威汤逊之后,护照是否过分了。 以下是我的代码。 Koa.js import koa from 'koa'; import router from 'koa-router'; import json from 'koa-json'; import bodyParser from 'koa-bodyparser'; import passport from './passport'; import session from './session'; import { config } from './env/env'; export class Koa { constructor(){ this.app = koa(); this.initMiddleware(); } initMiddleware(){ this.app.use(json()); this.app.use(bodyParser()); this.app.keys = config.secret; […]

会话Node.js + Passport.js + Redis,通过user.id存储会话

当用户login一个会话是为他创build的,但是如果他要去另一台计算机login,将为他的账户创build第二个会话。 我想这样做,以便用户不能有一个有效的会议。 无论如何用user.steamId存储在redis中的会话,以便他的第一个会话无效? 任何帮助将非常感谢! app.js var express = require('express'), http = require('http'); var app = express(); var cookie = require('cookie'); var server = http.createServer(app); var io = require('socket.io').listen(server); var redis = require('redis'); var client = redis.createClient(); var session = require('express-session'); var redisStore = require('connect-redis')(session); io.set('transports', ['websocket']); var path = require('path'); var logger = require('morgan'); var […]

节点js护照redirect结果在404

我正在通过电子邮件和密码进行/login,护照正确authentication,错误未被调用,然后返回res.redirect('/ profile')也会运行。 但是它返回404。 这些是我试过的两个login函数,它们都会导致“GET / profile 404”,即使当我做“GET / profile”时,它通常会返回200 // router.post('/login', passport.authenticate('local-login', { // successRedirect : '/profile', // redirect to the secure profile section // failureRedirect : '/login' // redirect back to the signup page if there is an error // })); router.post('/login', function(req, res, next) { passport.authenticate('local-login', function(err, user) { if (err) { return […]

无法使用护照authentication$ http基本身份validation

我怎样才能使我的$ http调用护照基本身份validation? 我在我的服务器上设置了基本身份validation和护照,我可以使用POSTMAN进行testing。 但是当我尝试在我的angular度应用程序上执行它时,我无法通过基本身份validation的用户名和密码。 我有$ http调用以下 $http({ method:'POST', url: 'http://myapicall.com/api/login', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization' : 'Basic Username:MySecret' },…. 我需要添加其他东西吗? 我一直没有得到授权,当我在邮递员上使用相同的用户名和密码,它工作正常。

Nodejs:用户信息/数据库和authentication(Passport)

我正在用Nodejs创build一个用户login系统。 我有几个问题,我似乎无法find答案(我正在使用本地策略使用护照)。 1)创build/存储用户帐户 护照文件指定了如下内容: User.findOne({username: username }, function(err, user){ if(err){return done(err);} if(!user){ return done(null, false, {message: "Incorrect Username."}); } if(!user.validPassword(password)){ return done(null, false, {message: 'Incorrect Password.'}); } return done(null, user); }); 要么 passport.deserializeUser(function(id, done){ User.findById(id, function(err,user){ done(err, user); }); }); 我不确定“用户”来自何处,因为我在尝试login时遇到“用户未定义”错误。 我假设我需要build立某种types的数据库,但我不知道该怎么做(文档和在线资源都不需要这样做)。 什么是“用户”? 我将如何去做一个“创build帐户”的事情,并将用户帐户存储到(本地)数据库? 2)之后获取用户信息/存储用户信息 用户login后,我需要获取与该帐户关联的特定数据,例如用户名。 用户也将有一个“排名点”,所以我需要一种方式来获得这一点。 当用户在我拥有的游戏中“胜出”时,用户获得“排名积分”,我也需要将其更新到特定的帐户。 我将如何做到这一点? 这是否也使用Passport完成(或Passport仅用于身份validation?)

响应者错误与Shibboleth和Node.js

我在服务器上build立了一个shibboleth服务提供者,40.78.18.242。 当我尝试访问http://40.78.18.242/secure/index.html时 ,一切都按计划进行。 我被redirect到我的身份提供者,然后,一旦我login,我能够访问我的安全目录中的资源。 我试图通过这个Shibboleth服务提供程序安装程序来保护node.js应用程序。 我已经查看了passport-saml模块,并且正在运行testing项目@ https://github.com/gbraad/passport-saml-example/ ,并对configuration文件进行了以下更改: 但是,无论何时我被redirect到IdP的login页面,响应都会给我这个错误: 我有一种感觉,我不正确理解护照的要求,因为这个错误消息只有在谷歌1-2结果。 我是否input了不正确的入口点或发行人 ? 或者,你可以收集这些会是什么,给我的shibboleth2.xml文件 ? 我的shibboleth文件的片段如下所示: <?xml version="1.0" encoding="ISO-8859-1"?> <SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" logger="/etc/shibboleth/syslog.logger" clockSkew="180"> <!– The OutOfProcess section contains properties affecting the shibd daemon. –> <OutOfProcess logger="/etc/shibboleth/shibd.logger"> <!– <Extensions> <Library path="odbc-store.so" fatal="true"/> </Extensions> –> </OutOfProcess> <InProcess logger="/etc/shibboleth/native.logger" /> <UnixListener address="shibd.sock" /> <!– This […]