Articles of passport.js

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 […]

Node.js Passport在页面加载上获得Facebook会话

我有护照Facebook Strategy工作正常。 然而,阅读facebook文件,我偶然发现: FACEBOOK DOCS 使用查询string设置时需要特别注意的事项: 如果您想在App Center中使用服务器端身份validationstream程,请确保在交换访问令牌的代码时正确传递redirect_uri参数。 您应该将您的redirect_uri参数设置为您网站的点击后到达url。 在大多数情况下,URL将如下所示: http://www.example.com/?fb_appcenter=1&fb_source=search&code=CODE_HERE因此您应该将您的redirect_uri设置为相同的值。 请确保此逻辑是dynamic的,因为附加到您的点击后到达url的查询参数可能会更改。 在应用程序中心有一个visit websitebutton,将用户发送到应用程序,并在进程中login。我怎样才能做到这一点与护照? 我必须将查询string添加到callbackURL吗? 我猜这是同样的问题,但我也需要类似于facebook javascript SDK提供的FB.getLoginStatus()来链接用户,如果他们的facebook打开并且以前添加了该应用程序。 这一切是由passport提供的任何方式吗?

如何使用Android作为客户端访问express.js / passport.js API?

我正在尝试使用node.js和passport.js访问express.js api。 有些方法在req.use可用时正常工作。 我尝试从我的客户端应用程序loginFacebook和Twitter,我得到普通的cookie。 像connect.sid = jkbsdkjabdkjasdbjkadnaidiadiasdaoidoa 我用这个方法重新创build客户端cookie: BasicClientCookie clientCookie = new BasicClientCookie(Metadata.COOKIE_LOGIN, cookieValue); clientCookie.setDomain("www.domain.com"); clientCookie.setPath("/"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, 1); clientCookie.setExpiryDate(calendar.getTime()); return clientCookie; 之后,我用这个Json请求: HttpUriRequest request = method.createRequest(uri); request.addHeader("Accept", "application/json"); HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); DefaultHttpClient client = new DefaultHttpClient(params); client.getCookieStore().addCookie(USER_SESSION_COOKIE); HttpResponse response = client.execute(request); String serializedJson = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); T fromJson = gsonParser.fromJson(serializedJson, clazz); 像往常一样,我无法使用明确的路线方法。 […]

Node.js和Backbone.marionette初始视图

目前,我有一个Node.js应用程序用我的服务器端模板语言(在这种情况下,玉)服务我的静态/login & /index HTML页面。 我想成功的身份validation后,返回有关当前login用户的数据,以便骨干可以开始呈现内容。 例如,我在Mongo中有一个UserGroup文档,用于存储有关User信息以及他们属于哪个组(授权信息)。 使用护照,我可以validation我的用户,并将其redirect到主页面。 app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true }) ); redirect后,我怎么能发送有关骨干将在首次渲染的'/'骨干路由中拿起的用户的数据? 这将是res.send()即使它不是发起第一个请求的骨干,也不是使用关于用户的元数据的会话。

在node.js中良好的用户/组pipe理

需要在node.js中实现用户/组pipe理 那里有好的框架? 看了一下passport.js,这似乎有authentication下来。 只是不确定用户/组的东西是内置的。我可以build立自己的用户/组,并使用passport.js进行身份validation。 只是想知道是否有什么我不知道的东西。 谢谢!

无法获得护照/快递与LocalStrategy一起使用。 得到401

我以为我跟着文件,但我得到了一个401响应。 我有一个简单的POST表单,收到401响应。 这是我的示例代码(CASE 1): passport.serializeUser(function(user, done) { console.log("Serializing:", user); done(null, JSON.parse(user)); }); passport.deserializeUser(function(obj, done) { console.log("Deserializing:" + obj); done(null, obj); }); passport.use(new LocalStrategy( function(username, password, done) { console.log("Authenticating…..:" + username); User.findOne({ username: username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } […]