Tag: 护照本地

如何在使用护照-http Basic +护照 – 本地组合时防止www-authenticate头

您好,我想支持我的应用程序中的基于身份的身份validation和http基本身份validation。 一切工作如预期,除非当我使用基于窗体的身份validation通过angularjs凭证错误。 浏览器显示由WWW-Authenticate头引起的BASIC auth对话框,而不是让我的angular码处理401。 如何防止在使用本地策略时添加标题? 或者我怎样才能以不同的方式支持这两种机制? 我在我的基于快件的应用程序中使用以下路线。 api.post('/authenticate', passport.authenticate(['local', 'basic'], { session: false }), function (req, res) { 这将启用该url上的两种身份validation方法。 我再说一遍,当我使用错误的证书使用formbased它显示我基本的身份validation对话框(我不希望这一点)。 以下是我如何注册的战略。 passport.use(new BasicStrategy({ realm: 'Authentication failed. Wrong username or password.'}, verifyLocalUser)); passport.use(new LocalStrategy(verifyLocalUser)); 这是我的verifyUser方法看起来像… var verifyLocalUser = function (username, password, next) { User.findOne({ username: username }).select('fullname admin username password').exec(function (err, user) { if (err) { […]

会话不能正确地从存储中获得,使用express-session和passportjs

我正在使用passport , express-session和connect-pg-simple 。 问题是会话不能正确地从存储中获得 ,在哪里得到正确的(我希望,但怀疑)保存。 我的设置是一样的,就像我在许多教程中find的一样。 server.js: import express from 'express'; import next from 'next'; import bodyParser from 'body-parser'; import session from 'express-session'; import connectPgSimple from 'connect-pg-simple'; const sessionStorage = connectPgSimple(session); import initAuthentication from '!/server/authentication'; const dev = process.env.NODE_ENV !== 'production'; // eslint-disable-line const port = process.env.PORT || 3000; // eslint-disable-line const app = […]

如何使用koa通用会话()的护照?

我创build了一个使用本地身份validation策略的护照的Koa应用程序。 我想使用模块koa-generic-session,这样我就可以将会话数据存储在Redis中。 我如何使用这两个? 我发现这个回购这样做,但它似乎并没有真的使用会议,我不知道这是否是正确的: https : //github.com/dozoisch/koa-react-full-example

手动呼叫护照进行身份validation

我使用护照开发了一个由oauth2身份validation保护的宁静的nodeJS API。 var express = require('express'); var passport = require('passport'); var port = process.env.PORT || 8080; var app = express(); app.use(passport.initialize()); // Create our Express router var router = express.Router(); var creatureController = require('./controllers/creature'); router.route('/creature').get(passport.authenticate('accessToken', {session: false}), creatureController.getProfile); 在这种情况下,路由受到保护,并且需要发送有效令牌才能访问路由。 我想find一种方法来手动validation我的“用户”,通过调用一个函数,它采取我想要authentication的用户的用户名和密码。

req.session.passport和req.user空,serializeUser和deserializeUser都不会被调用

我正在使用Express(v4.11.2)与护照,以支持多个提供商(本地,脸谱,微博和谷歌)访问我正在build设的networking应用程序。 作为后端,我使用的是mysql。 现在我有两个本地策略:本地注册和本地login。 我遇到的问题是,req.session.passport和req.user总是空的,实际上,serializeUser和deserializeUser永远不会被调用。 这里是快递和护照的设置: var bodyParser = require('body-parser'); var session = require('express-session'); var MemoryStore = session.MemoryStore; var _ = require('underscore'); var passport = require('passport'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); app.use(session({ key: 'KEY', secret: 'SECRET331156%^!fafsdaasd', store: new MemoryStore({reapInterval: 60000 * 10}), saveUninitialized: true, resave: false })); app.use(passport.initialize()); app.use(passport.session()); require('./config/passport')(passport); // pass passport for configuration 这里是身份validation策略的护照文件: module.exports = […]

护照js如何在会话中存储用户对象?

我正在使用节点/expression护照在我的发展。 我遇到一篇文章说: Express加载会话数据并将其附加到请求。 由于护照将序列化的用户存储在会话中,因此可以在req.session.passport.user中find序列化的用户对象。 但令我惊讶的是,浏览器cookie中sessionID存储的值在login前后保持不变。 那么序列化的用户对象存储在哪里呢? 我以为它最初存储在用户sessionid cookie中,但似乎并非如此,因为我仍然可以通过req.session.passport.user访问我的用户对象

在会话中更新login的用户详细信息

ExpressJS使用PassportJS。 我需要更新login的用户的详细信息。 虽然我在数据库中进行更新,但是如何在会话中更新它,以便request.user包含更新的用户详细信息? 也就是说,在更新数据库之后,如何更新用户的会话信息呢? 我试着直接分配更新的细节request.user但它没有工作。 然后我尝试request.session.passport.user – 这工作,但有一个约5至10秒的延迟之前,它在request.user更新。 是否有我需要调用的函数更新会话中存储的用户信息? 还是有一些其他的对象,我可以更新的地方没有延迟的变化

Passport本地策略完成callback不会传递错误json消息

我想通过一个JSON消息,当身份validation失败,使用完成callback在LocalStrategy,但我得到的是401和“未经授权”string的响应。 var express = require('express'); var bodyParser = require('body-parser'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); app.use(bodyParser.json()); app.use(passport.initialize()); passport.serializeUser(function(user, done) { done(null, user.email); }); var strategy = new LocalStrategy({ usernameField: 'email' }, function (email, password, done) { if (email === 'test@gmail.com' && password === 'pass') { return done(null, { email: […]

护照的req.isAuthenticated总是返回false,即使我硬编码完成(null,true)

我试图让我的护照本地策略工作。 我有这个中间件设置: passport.use(new LocalStrategy(function(username, password, done) { //return done(null, user); if (username=='ben' && password=='benny'){ console.log("Password correct"); return done(null, true); } else return done(null, false, {message: "Incorrect Login"}); })); 但在这里 app.use('/admin', adminIsLoggedIn, admin); function adminIsLoggedIn(req, res, next) { // if user is authenticated in the session, carry on if (req.isAuthenticated()) return next(); // if they aren't […]