Tag: passport.js

使用passport-local进行身份validation后,无法使用来自客户端的会话

我正在尝试使用express,passport-local,mongoose编写一个小型的用户authentication模块。 用户身份validation工作正常,但我不能够在进一步的会话中使用经过身份validation的用户。 已经经历了Stackoverflow和其他地方的大部分build议,但似乎没有在这里工作。 我的代码的微缩版本如下: var express = require('express'); var cookieParser = require('cookie-parser'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var session = require('express-session'); function genuuid(req) { return "UUID"; } var app=express(''); mongoose.connect('mongodb://localhost:27017/test'); //user config var userSchema = new mongoose.Schema({ username: String, password: String}); var User = […]

nodejs会话在本地工作,但不在远程服务器上

我无法使用passort.js和express.js进行注册和login,在本地这工作得很好,但是当我在远程服务器上部署应用程序时,login后login无法redirect。 它甚至不会刷新失败消息。 我还注意到,当我在远程服务器上注册时,它工作正常,但不闪烁的消息。 req.isAuthenticated()总是返回false。 我正在使用MongoDB作为我的数据源 app.use(session({secret : '3T67774A-R649-4D44-9735-43E296ZZ980F', saveUninitialized: true, resave: true})); app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions app.use(flash()); // use connect-flash for flash messages stored in session function isLoggedIn(req, res, next) { console.log("Request Authenticated: " + req.isAuthenticated()); if (req.isAuthenticated()) return next(); res.redirect('/login'); } passport.use('local-login', new LocalStrategy({ // by default, local strategy uses username and […]

节点/ Angular / Passport / Satellizer基于令牌的Facebook身份validation不返回令牌

我正在使用Angular上的Satellizer和一个使用Passport.js进行身份validation的Node后端。 我已经根据Satellizer文档实现了loginstream程,并且能够通过Passport / Node服务器将令牌返回给浏览器。 但是,当我返回令牌时,它会返回到popup窗口,而不是Angular应用程序本身。 因此,在popup窗口自closures之后,我在angular度应用程序中收到此错误: Expecting a token named "token 这是我的护照路线: app.post('/login/facebook', passport.authenticate('facebook-login', { 'scope': ['email'] })) app.get('/login/facebook-callback', passport.authenticate('facebook-login'), function(req, res) { tokenHelper.createSendToken(req.user, res); }) 这是我的Passport Facebook战略: var facebookLoginStrategy = new FacebookStrategy({ clientID: process.env.FACEBOOK_APP_ID, clientSecret: process.env.FACEBOOK_APP_SECRET, callbackURL: "http://localhost:8080/login/facebook-callback", passReqToCallback: true, profileFields: ['email'] }, function(req, accessToken, refreshToken, profile, done) { if (!req.user) { User.findOne({ "facebookData.id": […]

使用req.login()刷新passport.js会话数据

我正在使用passport.js。 问题是当我更改用户名称等用户信息时,直到用户重新login才更改。 如果用户注销并再次login,则信息已更改。 但我想在不重新login的情况下更改会话。 我的反序列化用户函数如下所示,它看起来不同的原始护照的例子,因为它是从会议拾取数据,而不是查询数据库。 我想加载速度,所以我没有使用反序列化函数的数据库查询。 passport.deserializeUser(function(userSession, done){ var member = { id : userSession[0], name : userSession[1] }; done(null, member); }); 所以我想我必须像下面那样使用req.login() ,但会话不会改变。 Members.findOne({_id : someId }, function(err, member){ member[username] = req.body.username; member.save(function (err){ if(err) return next(); console.log('The original session :'+req.sessionId); req.login(req.user, {}, function(err){ if (err) return next(); console.log('The new session :'+req.sessionId); res.send(200); }); […]

节点Facebook Passport无论发送范围如何,都只返回某些字段

我目前正在尝试使用Koa-Passport和Koajs 2来实现Facebook的OAUTH 一切工作正常,我可以login,什么不是,但不pipe我发送的范围,我只得到: { passport: { user: { id: '1015401', username: undefined, displayName: 'John Doe', name: [Object], gender: undefined, profileUrl: undefined, provider: 'facebook', _raw: '{"name":"John Doe","id":"1015401"}', _json: [Object] } } } 我试过添加 scope: ['email', 'public_profile']这似乎在Facebook上工作结束,因为我可以看到我的应用程序正在请求的信息,所有的东西在那里。 但是,当我点击确定,我重新导向回到我的应用程序,再次我失去了像一个profile_pic字段和email字段的东西。 任何有关如何获得这些领域的信息将非常感谢。 我会在github页面上打开一个问题,但是有一些问题可以追溯到2013年,它似乎没有被保留太多。

passport.js:记住我不能在快速应用程序中工作

我在我的申请中实施了护照本地策略。 现在我要实现记住我的function: app.use(passport.initialize()); app.use(passport.session()); app.post("/login", function (req, res, next) { var authFunction = passport.authenticate("local", function (err, user, info) { if (err) { next(err); } else { req.logIn(user, function (err) { if (err) { next(err); } else { if (req.body.remember) { req.session.cookie.originalMaxAge = 2592000000; } else { req.session.cookie._expires = false; } res.redirect("/"); } }); } }); […]

Node.js + Express 4 + Passport.js如何获取当前login的所有用户列表?

我已经设置我的Node.js服务器如下: var Express = require('express'); var Path = require('path'); var Favicon = require('serve-favicon'); var Logger = require('morgan'); var CookieParser = require('cookie-parser'); var BodyParser = require('body-parser'); var Passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var Mongoose = require('mongoose'); var Routes = require('./routes/index'); var Users = require('./routes/users'); //var Login = require('./routes/login'); var App = Express(); // view […]

Nodejs Express Passport – req.isAuthenticated()和req.user之间的区别

如果用户已经过authentication,请求不应该有用户附加到它,以及为req.isAuthenticated()返回true ? 那么这两者有什么区别呢? 我不应该罚款只是检查req.user是否存在,在确保用户login方面?

在两个节点应用之间共享会话

我有一个使用passport-local-mongoose进行身份validation的节点应用程序。 我有第一个应用程序的iframe中的第二个节点应用程序。 我想用第一个应用的同一会话保护第二个应用中的快速路由,以便用户只login一次,但第二个应用中的快速路由仍然受到保护。 有两种节点应用程序共享会话的方法吗? 或者也许有另一种方法? 谢谢。

console.log和redirect在node.js不起作用?

我申请注册和login,但东西不能正常工作 这是来自routers / users.js的users.js var express = require('express'); var router = express.Router(); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var multer = require('multer'); var upload = multer({dest: './uploads'}); var User = require('../models/user'); /* GET users listing. */ router.get('/', function(req, res, next) { res.send('respond with a resource'); }); router.get('/register', function(req, res, next) { res.render('register', { […]