Articles of passport.js

使用cookie进行节点用户authentication

我将写一个负责用户身份validation的服务器API。 从我的极限知识和理解来看,当用户使用用户名和密码login时,会话将被创build,并且使用用户名的auth cookie将被保存到cookie中。 当用户请求下一页时,cookie中的用户信息将发送到服务器,服务器将识别它。 所以我的问题是如果另一个人手动复制现有的cookie信息,并在另一台计算机的浏览器中创build相同的cookie? 它会跳过login阶段吗? 任何人都可以详细解释如何防止这个细节? 谢谢

创build一组用户,这将是一个好方法?

我在Node中构build了一个社交networkingWeb应用程序。 我添加了一个组模型来创build一组用户,如Facebook。 我一直在寻找一个npm模块,我可以使用和search谷歌和stackoverflow,但我还没有find任何东西。 这是我添加到我的专家组的模型。 var groupSchema = mongoose.Schema({ name: String, motivation: String, destination: String, days: String, members: [String], profile: String }); module.exports = mongoose.model('Group', groupSchema); 有没有人有这样做的好方法? 注意:我使用了一个groupController,我想用3个动作。 一个用于显示用户,一个用于添加用户和一个创build,但它没有工作。

我如何等待收益?

我有一个函数findOrCreateUser返回一个生成器。 但是我需要在函数done时调用一个callback函数。 我该怎么做呢? 我试着在发生器上调用next() ,但是结果正在等待。 passport.use(new FacebookStrategy({ clientID: fbConfig.appId, clientSecret: fbConfig.appSecret, callbackURL: 'http://localhost:' + (process.env.PORT || 3000) + '/auth/facebook/callback' }, function(token, tokenSecret, profile, done) { var user = yield userRepository.findOrCreateUser( profile.id, profile.name, 'pic'); return user; }) );

在Sails.js中更新用户模型时密码被更改

/** * User.js * * @description :: TODO: You might write a short summary of how this model works and what it represents here. * @docs :: http://sailsjs.org/#!documentation/models */ var bcryptjs = require('bcryptjs'); function hashPassword(values, next) { bcryptjs.hash(values.password, 10, function(err, hash) { if (err) { return next(err); } values.password = hash; next(); }); } module.exports […]

Express 4.11.1中的Passport.js不写入session.passport

使用express 4.11.1使用passport.js时遇到一些小问题 以下是我的app.js var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; passport.use(new LocalStrategy( function(username, password, done) { if(username == '1' && password == '1') { var user = {username: 'test',id: 123,firstName: 'test'}; return done(null, user); } else { return done(null, false, {message: 'Incorrect username or password'}); } } )); passport.serializeUser(function(user, done) { done(null, user); }); […]

Nodejsexpression本地和Facebook的集成authentication

我实际上使用NodeJS开发了一个restfull服务器并进行expression。 我已经实现了oauth2协议,以保证我的API。 我想添加Facebook身份validation,但我不设法将Facebook身份validation与我的本地身份validation集成。 server.js router.route('/oauth/local') .post(oauth2Controller.token); router.route('/oauth/facebook') .get(passport.authenticate('facebook-token'), oauth2Controller.token); //impossible to call oauth2Controller.token oauth2.js var oauth2orize = require('oauth2orize') var User = require('../models/user'); var AccessToken = require('../models/accesstoken'); var RefreshToken = require('../models/refreshtoken'); var passport = require('passport'); var server = oauth2orize.createServer(); server.exchange(oauth2orize.exchange.password(function(application, username, password, scope, callback){ User.findOne({username: username}, function(err, user){ if (err) return (callback(err)); if (!user) return (callback(null, […]

passport-google-oauth2获取节点js中的gmail.users.messages.list

首先,我对护照节点js + oauth2比较陌生,所以如果您有任何困惑,请发表评论。 我已经尝试下面的身份validation谷歌从oauth2与node.js,这里是代码 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; var google = require('googleapis'); var GOOGLE_CLIENT_ID = "—MY-CLIENT-ID"; var GOOGLE_CLIENT_SECRET = "—MY-CLIENT-SECRET"; var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function(req, res){ res.render('index', { user: req.user }); }); app.get('/account', ensureAuthenticated, function(req, res){ res.render('account', { user: req.user }); }); app.get('/login', function(req, res){ res.render('login', { user: req.user […]

NavBar地址加载angular模板,但不是根shell

我正在使用Node.JS和Express,Angular.JS以及ACL的节点模块连接angular色。 我想让一个user.status为“Platinum”的用户访问“Platinum”,而不是“Gold”,反之亦然。 我有ACL部分工作,如果我input/白金导航栏我不能访问/黄金,但是当我尝试访问/白金我只得到模板,而不是根shell,所以会出现这样的: You made it! You have the {{status}} status! 如果我点击一个angular度到/ Platinum的链接,一切都会按照原样进行。 如果我在导航栏中input任何中性地址,则一切正常。 这应该是一个简单的解决scheme,但我还没有弄明白。 这里是设置授权的代码,我很确定这里的一切都没问题。 ConnectRoles = require('connect-roles') var user = new ConnectRoles({ failureHandler: function(req, res, action){ var accept = req.headers.accept || ''; res.status(403); if(accept.indexOf('html')) { res.render('access-denied', {action: action}); } else { res.send('Access Denied – You don\'t have permission to: ' + action); } […]

如何在Passport.js和Sails.js注册后redirect到特定位置?

我正在使用Sails.js,并且已经安装了本地身份validation的passport和passport-local模块。 当我安装护照模块时,一些文件是在策略,服务,模型和控制器下自动创build的。 我已经修改了一些这些文件以适应我的需求,但是,我无法find一种方法来将用户redirect到特定位置后,他注册。 现在,默认行为是用户注册并自动进行身份validation,然后redirect到用户在login时redirect到的相同url。 我试图查看不同的护照生成的文件,但我找不到“注册callback”或类似的东西。 在AuthController ,有一个“callback”方法,看起来像这样: callback: function (req, res) { function tryAgain (err) { var flashError = req.flash('error')[0]; if (err && !flashError ) { req.flash('error', 'Error.Passport.Generic'); } else if (flashError) { req.flash('error', flashError); } req.flash('form', req.body); var action = req.param('action'); switch (action) { case 'register': res.redirect('/signup'); break; case 'disconnect': res.redirect('back'); break; default: res.redirect('/login'); […]

无法使用sails-generate-auth进行注册

我是一个新手api开发者。 为此我正在使用sailsjs。 对于身份validation,我正在使用sails-generate-auth。 我已经在github上跟踪了doc。 这里我所做的是: // ProfileController: home: function (req, res) { Passport .findOne({ protocol: 'local', user: req.user.id }) .exec(function(err, passport) { return res.json({ todo: 'home() is not implemented yet! But you are logged in :)', token: passport.accessToken }); }); } //config/policy.js // '': true, '': ['passport', 'sessionAuth'], 'Profile': { 'showAll': ['passport', 'bearerAuth','sessionAuth'], }, 'auth': […]