Tag: passport.js

Passport.js:UID是唯一的吗?

我有一个Nodejs应用程序,我使用Passeport让我的用户通过Oauth连接Facebook或Google。 我连接后存储基本数据,如:uid,名字等 我怎么能保证,我收到的用户名将永远是唯一的给定的用户? 我的意思是,数据来自Facebook或Google,所以为什么我不能面对不同用户的讨厌的重复uid?

如何针对不同的路线使用相同的护照策略?

假设我有这样的代码: var api1 = require('api1'); var api2 = require('api2'); var app = express(); app.use('/api1', api1); app.use('/api2', api2); 这里是api1模块的代码: var router = express.Router(); var options = { jwtFromRequest:ExtractJwt.fromAuthHeader(), secretOrKey:config.JWTSecret, algorithms:['HS256'] } passport.use(new JwtStrategy(options, function(jwt_payload, verify) { //here I look for the user in database No.1 })); router.post('/files', passport.authenticate('jwt', { session: false}), function(req, res) { //… } […]

nodejs / passport – 错误:OAuthStrategy需要会话支持

我正在尝试使用护照模块在我的web应用程序上build立一个twitter连接 我已经实施如下: App.js文件: /** * Module dependencies. */ var express = require('express'); var user = require('./server/routes/user'); var http = require('http'); var path = require('path'); var app = express(); var passport = require('passport'); var flash = require('connect-flash'); require('./server/config/passport')(passport); // pass passport for configuration // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); […]

在不覆盖用户请求对象的情况下使用passport.js和多个策略

我正在使用passport.js本地策略进行身份validation。 我还需要用户使用Facebook,Twitter和G +进行身份validation,但不能作为身份validation的替代品,而是要使用户能够从这些服务中检索其内容。 如书面所述,每个authentication策略都将一个用户对象写入请求对象。 这具有注销我的root用户的效果。 有没有办法利用这些额外的authentication策略的护照,但不覆盖用户对象? 这是典型的例子: var passport = require('passport') , TwitterStrategy = require('passport-twitter').Strategy; passport.use(new TwitterStrategy({ consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET, callbackURL: "http://www.example.com/auth/twitter/callback" }, function(token, tokenSecret, profile, done) { User.findOrCreate(…, function(err, user) { if (err) { return done(err); } done(null, user); //trashes my existing user object }); } ));

在node.js中login策略

我正在一个有社交login(Facebook和G +)的项目中工作。 当用户使用社交networking创build自己的帐户时,我会存储联系人电子邮件,而不是密码。 如果用户想要使用本地帐户,他必须恢复密码。 这是一个很好的策略吗?我必须创build一个随机的密码,并通过电子邮件给用户? 谢谢!

Passport.js总是返回500内部错误

我正在尝试使用passport.js构build一个非常简单的身份validationAPI,但是我的代码总是返回500内部错误状态。 var express = require('express'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var expressSession = require('express-session'); var logger = require('morgan'); var path = require('path'); var passport = require('passport'); var passportLocal = require('passport-local'); var app = express(); app.set('port', process.env.PORT || 3000); app.set('view engine', 'ejs'); app.use(logger('dev')); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(expressSession({ secret: process.env.SESSION_SECRET || 'secret', […]

使用passport-ldapauth npm进行LDAPauthentication

我正在尝试使用passport-ldapauth npm来validationopenLDAP用户名和密码。 在执行下面的代码时,我总是得到错误{ message: 'Missing credentials' } 。 请帮助我,我的代码有什么问题。 var connect = require('connect'), app = connect(), passport = require('passport'), LdapStrategy = require('passport-ldapauth'); // Credentials from the free LDAP test server by forumsys // More info at: http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/ var OPTS = { server: { url: 'ldap://<ip>', bindDn: '<admin username>', bindCredentials: '<admin password>', usernameField: "<passing actual username>", […]

bcrypt-node抛出错误“没有给出callback函数”

我正在使用JWT身份validation创build用户注册。 而我正在使用bcrypt-node模块进行密码哈希和腌制。 useraModel.js var mongoose =require('mongoose'); var Schema =mongoose.Schema; var bcrypt =require('bcrypt-node'); var UserSchema=new Schema({ name:{type:String, unique:true, required:true}, password:{type:String, required:true} }); UserSchema.pre('save', function (next) { var user = this; if (this.isModified('password') || this.isNew) { bcrypt.genSalt(10, function (err, salt) { if (err) { return next(err); } bcrypt.hash(user.password, salt, function (err, hash) { if (err) { return […]

bcrypt-nodejs抛出的错误参数 – Passport

我有一个login系统为我的Node.js应用程序设置。 最近,我改变了我的用户模型(CoffeeScript): password: String 至 password: type: String select: false 我的函数比较密码哈希与bcrypt如下: userSchema.methods.validPassword = (password) -> bcrypt.compareSync password, @local.password 现在,每当我运行上面的函数,这个错误被抛出 Incorrect arguments 任何人有任何想法,为什么这会抛出后,我的用户模型中添加“select:false”?

NodeJS:使用connect-flash的Express 3.0(根据护照本地策略中的build议),仍然发现req.flash的exception

我是NodeJS的新手,并试图通过Express3.0构build一个应用程序,包括护照本地策略的authentication目的。 但是下面的例外(关于req.flash)阻碍了我的进步。 以下行中发生exception。 res.render('login',{user:req.user,message:req.flash('error')}); performance 500 TypeError:对象#没有方法“闪光灯” 在/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/app.js:115:54 在callback(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:162:37) at param(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:136:11) (/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:143:5) 在Router._dispatch(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:171:5) 在Object.router(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:33:10) (/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/proto.js:190:15) 在store.get.next(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session.js:310:9) 在/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session.js:333:9 at /Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:52:9 我已经安装了connect-flash来恢复作者(passport-local-strategy)build议的弃用req.flash方法。 请find安装在应用程序中的npm包。 ├──connect-flash@0.1.0 ├──ejs@0.8.3 ├──ejs-locals@0.2.5 ├─┬express@3.0.0 │├──commander@0.6.1 │├─┬connect@2.6.0 ││├──bytes@0.1.0 ││├──formidable@1.0.11 ││├──pause@0.0.1 ││├──qs@0.5.1 ││└─┬send@0.0.4 ││└──mime@1.2.6 │├──cookie@0.0.4 │├──crc@0.2.0 │├──debug@0.7.0 │├──fresh@0.1.0 │├──methods@0.0.1 │├──mkdirp@0.3.3 │├──range-parser@0.0.4 │└─┬send@0.1.0 │└──mime@1.2.6 ├─┬passport@0.1.12 │└──pkginfo@0.2.3 ├─┬passport-local@0.1.6 │├──passport@0.1.12 │└──pkginfo@0.2.3 ├─┬socket.io@0.9.10 │├──policyfile@0.0.4 │├──redis@0.7.2 │└─┬socket.io-client@0.9.10 │├─┬active-x-obfuscator@0.0.1 ││└──zeparser@0.0.5 │├──uglify-js@1.2.5 │├─┬ws@0.4.22 […]