Tag: passport.js

node.js:如何使用koa的护照

护照的网站索赔 护照可以不显眼地放入任何基于Express的Web应用程序。 我可以和Koa一起使用吗? 如果是这样,那么学习如何做是一个好的起点? 我正在考虑使用会话的经典用户名/密码策略(也许与Redis)。 请原谅这个愚蠢的问题,我刚刚开始使用Node,并且有太多东西需要一次学习,而我的脑袋正在旋转。

错误:未知的身份validation策略“”

POST localhost/api/login )(正确的)数据username = test password = test提供以下内容: Error: Unknown authentication strategy "[object Object]" at attempt (/var/www/node_modules/passport/lib/middleware/authenticate.js:166:37) at authenticate (/var/www/node_modules/passport/lib/middleware/authenticate.js:342:7) at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5) at next (/var/www/node_modules/express/lib/router/route.js:110:13) at Route.dispatch (/var/www/node_modules/express/lib/router/route.js:91:3) at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5) at /var/www/node_modules/express/lib/router/index.js:267:22 at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12) at next (/var/www/node_modules/express/lib/router/index.js:261:10) at SessionStrategy.strategy.pass (/var/www/node_modules/passport/lib/middleware/authenticate.js:318:9) 路线: app.post('/api/login', passport.authenticate(new LocalStrategy(function(username, password, done) { db.User.findOne({username: […]

强制share.js使用相同的快速会话数据

我有一个简单的express应用程序,使用session中间件和passport-local中间件。 然后我使用share.js和browserchannel通过share.listen(stream)将数据传输到服务器。 全部与这里的文档保持一致。 我的问题是,我不能访问stream中的会话数据(由passport-local修改,并包含login的用户ID)。 我需要它能够限制/授予client.on('message',function(data){..})中的访问权限。 基于一些逻辑,但首先重要的是检查消息来自login用户。 在那里,如果我尝试读取ID,它将与req.user._id中的什么有所不同。 似乎有share.js或browserchannel使用一些不同的会话,也许?.. 代码如下: var app = express(); var express = require('express'); … // SETUP AND INIT app.use(cookieParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true, limit: 1024 * 1024 * 10 })); app.use(methodOverride()); app.use(session({ secret: global.CONFIG.session.secret, maxAge: new Date(Date.now() + 1000 * 60 * 60 * 24 * 2), store: new MongoStore(global.CONFIG.mongo), resave: […]

护照js通过url进行身份validation

我为我的应用程序使用Express JS和Passport JS。 我想让新用户有机会自动login一次,通过特定的URL。 我可以从URL中获取用户从数据库中的信息,所以我有一个用户对象(ID,电子邮件,哈希密码等),但我不知道如何使用护照来validation用户和login。 我试图执行下面的函数与我从数据库中获得的用户对象: req.login(user, function(err) { if (err) { return next(err); } return res.redirect('/users/' + req.user.username); }); 来源: http : //passportjs.org/guide/login/ 但是这没有用。 猜猜这只是因为用户对象包含哈希密码…谁曾经尝试过,并可以告诉我它是如何工作的任何人?

如何正确调用passport.js函数与快速路由器?

我试图调用passport.authenticate函数作为对我的注册视图发布请求的响应。 我一直在这里按照这个教程 ,让我的头围绕passport.js和expression,但已经完成指令的第一页,并做了必要的修改express.js 4.0每一页我尝试访问返回错误500,并显示以下stacktrace : TypeError: Object #<serverResponse> has no method 'authenticate' at module.exports (/home/myUserName/Desktop/manufacturing/routes/index.js:66:37) at Layer.handle [as handle_request] (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/layer.js:82:5) at trim_prefix (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:302:13) at /home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:270:7 at Function.proto.process_params (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:321:12) at next (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:261:10) at /home/myUserName/Desktop/manufacturing/node_modules/connect-flash/lib/flash.js:21:5 at Layer.handle [as handle_request] (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/layer.js:82:5) at trim_prefix (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:302:13) at /home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:270:7 这里是/routes/index.js的代码: var express = require('express'); var bodyParser = require('body-parser'); var router = […]

我怎样才能保护与多个租户的SAML?

我正在谈论IDP发起的工作stream程。 我正在使用saml的这个 passport策略。 在“ 安全和签名 ”标题下,它build议提供IDP的证书。 当我定义战略AFAIK时将插入此证书。 在多租户应用程序的情况下,我将无法知道使用哪个证书,直到用户尝试login,并且在那时使用证书将会迟到,是不是? 如果在SAML请求进来之前我无法知道使用哪个证书,那么如何与多个租户validationSAML请求呢? 我想我需要这样的东西: 用户发送标识他们尝试login的租户的信息 SAML策略是使用正确的证书创build的。 SAML过程开始。 或者,也许我只是在想它错了,没有一个是真正需要有一个相对安全的login过程? 如果这个问题太广泛,如果你留下意见来帮助我缩小范围,或者指导我阅读资源,我将非常感激。 如果不清楚,我正在储存: SSOurl 发行人url 公共证书 这个信息与租户相关联,所以一旦我从IDP获得了个人资料信息,我就可以确定用户应该被引导到哪个租户。 在确定承租人确认事物之后,我也可以使用这些信息。 也许我可以使用公共证书做一些“事后”validation?

Sails.js 0.11和护照:“Missing Credentials”错误

我已经按照这个网站的教程: http : //iliketomatoes.com/implement-passport-js-authentication-with-sails-js-0-10-2/ registry单工作正常,一切都保存到我的数据库(MongoDB),但是当我想login时,我有missing credentials错误: { "message": "Missing credentials", "user": false } 这很奇怪,我已经克隆了https://github.com/iliketomatoes/passport_with_sails , sails lift它,一切工作正常。 我已经将所有api源文件和configuration复制到我的项目中。 只有意见是不同的,但我敢肯定,我使用的input名称: email和password 。 而我仍然有这个错误。 我正在使用MongoDB作为数据库,我切换到本地磁盘(如在这个回购),仍然是同样的问题。 我已经将package.json文件中的npm模块的版本更改为repo版本,并且仍然是相同的错误。 它很奇怪。 另外我不得不提到POST请求包含email和password字段。 我已经仔细检查过了 有人知道什么会导致这个问题? 编辑:我的login.ejs视图看起来像这样: <div class="row"> <div id="content" class="col-sm-12 full"> <div class="row"> <div class="login-box"> <div class="header"> Login to JSCS Dashboard </div> <form class="form-horizontal login" action="/login" method="POST"> <fieldset class="col-sm-12"> <div class="form-group"> […]

validationcaptcha以及passport.js

是否有可能在调用passport.jsvalidationfunction之前validationgoogle recaptcha是否成功? 我之间select一个或另一个之间卡住,因为都使用asynchronouscallback来validation,我不能在他们之间相互。 function verifyRecaptcha(key, rq, rs, pa, callback) { https.get('https://www.google.com/recaptcha/api/siteverify?secret=' + SECRET + '&response=' + key, function (res) { var data = ''; res.on('data', function (chunk) { data += chunk.toString(); }); res.on('end', function () { try { var parsedData = JSON.parse(data); // return true; callback(parsedData.success, rq, rs, pa); } catch (e) { // return […]

护照与404失败 – 为GitHub InternalOAuthError为什么?

我有与Google和Facebook合作的护照。 我试图添加Github来添加这些凭据,所以我可以做有效的Github API调用。 所以我简单地添加了我用Google或Facebook凭证login的相同模式。 但是在authcallback发生在Github之后,我在代码的中间看到了InternalOAuthError。 这几乎发生在最后一行:'return done(null,user.userData);' 叫做。 尝试debugging干扰callback。 所以我希望有一个更清晰的护照可以解释我做错了什么。 真奇怪的是,我已经从github收到用户configuration文件,并以“user.update(db)”存储在我的数据库中,就像我用google做的一样。 然后,当我试图通过调用done(…)来返回时发生崩溃。 我需要在github上添加一些东西给我的个人资料吗? 或者是其他东西? 或者这是因为我早已使用护照更早login使用谷歌凭据。 请注意,对于Google或Facebook,我指定了会话:false。 我已经用“passport-github”和“passport-github2”来尝试这个了。 清晰的代码是: index.js var express = require('express'); var passport = require('passport'); var auth = require('../auth.service'); var router = express.Router(); router .get('/:user', passport.authenticate('github', { failureRedirect: '/signup', session: false })) .get('/callback', passport.authenticate('github', { failureRedirect: '/signup', session: true }), auth.setTokenCookie); module.exports = […]

在post API中redirect错误

我正在使用node.js restify和passport模块,restify-ensure-login模块执行用户loginauthenticationfunction。 https://www.npmjs.com/package/restify-ensure-login 这里是相关的代码; var passport = require('passport'); var Strategy = require('passport-local').Strategy; passport.use(new Strategy( function(username, password, cb) { db.users.findByUsername(username, function(err, user) { if (err) { return cb(err); } if (!user) { return cb(null, false); } if (user.password != password) { return cb(null, false); } return cb(null, user); }); })); passport.serializeUser(function(user, cb) { cb(null, user.id); }); […]