Tag: passport.js

如何使用PassportJS与HapiJS

我很难决定使用PassportJS和HapiJS的最佳方式。 有没有人做到这一点? 我不是在谈论Travelogue,因为我有点不喜欢它的工作方式。 也许我没有正确使用它。

Passport.js会话混乱

我正在学习节点和expression。 我试图build立一个非常基本的应用程序,只是让用户使用jsonlogin。 然后将保持会话,直到他们注销。 与asp.net这是一个轻而易举的事,你只需在configuration中设置和调用… Auth.Login(username,pasword) 当他们注销你只是做: Auth.logout() 如果你需要检查他们是否login,你只需要做: Auth.IsLoggedIn() 或者代码来达到这个效果。 好像Passport for node就不那么简单了。 我花了整夜的工作 app.post('/authentication/login', function handleLocalAuthentication(req, res, next) { passport.authenticate('local', function(err, user, info) { // Manually establish the session… req.login({username:'me@me.com',password:'password'}, function(err) { if (err) return next(err); return res.json({ message: 'user authenticated' }); }); })(req, res, next); }); app.get('/authentication/isauthenticated',function(req,res){ console.log(req.isAuthenticated()); }) passport.use(new LocalStrategy( function(username, password, […]

如何使用angular度节点应用程序的护照?

我正在基于angular.js + node.js和mongodb使用快速模板的简单博客网站上工作。 我通过POST方法使用angular控制器中的$http将其命名为users.js ,其中login使用passport.authenticate方法进行身份validation。 我需要在users.js护照本地login策略。 但它不工作。有angular度login服务代码和节点用户api代码。 任何人都可以告诉我如何在angular度和节点中使用passport.js ? 通过服务的angular度路由 app.service('Auth',function($location,$http,$localStorage){ var userLogin ; return{ setLogIN:function(email,password){ $http({ method: 'POST', url: '/users/login', //users.js having node routing. data: {email:email, password:password}, }) 用户中的节点路由 router.post('/login',passport.authenticate('local', { // use passport-local for authentication successRedirect : '/profile', failureRedirect : '/login', failureFlash : true })); 护照本地策略 app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy( function (username, password, […]

自定义redirect在护照

我正在尝试为我的第一个面向公众的节点应用程序设置一个基本的身份validation。 我有两个护照策略:1)Facebook和2)Twitter。 我不打算至less包括一个电子邮件/密码系统,直到我明白安全的含义。 我已经能够让他们以一种开箱即用的方式工作,并与Mongoose绑定,以创build新的用户。 我现在想要从事重复社交帐号用户的工作。 所以每当一个新用户通过Twitter身份validation进入,我想redirect到一个收集电子邮件的页面。 我保存作为会话variables返回的令牌和configuration文件对象,并将该表单作为隐藏字段提交时,将在该页面上重用它们。 但是我不明白如何使用Passport来实现这个方面。 这里是我到目前为止的代码,我正在试图对每个部分进行评论。 本质上我正在检查如果叽叽喳喳用户是一个老用户,如果没有我设置会话variables,我将在/ addemail页面上重用,初始化用户对象(以便序列化,反序列化function有某些行动(不知道我明白什么序列化/反序列化实际上)现在,如果用户是一个新的,会话variablesNewTwitterUser是真实的,我检查它在auth /callbackurlredirect用户到适当的页面,但这是行不通的。 //basic modules and setup var express = require('express') , passport = require('passport') , mongoose = require('mongoose') , http = require('http') , util = require('util') , TwitterStrategy = require('passport-twitter').Strategy , FacebookStrategy = require('passport-facebook').Strategy , path = require('path'); var app = express(); //Mongodb setup var […]

在使用PassportJS for Facebook时如何区分login和注册

我正尝试在Google Analytics上设定目标以跟踪Sign Ups,因此我build立了一个“谢谢”页面作为我的url目标。 当我的用户使用他们的电子邮件地址注册时,它运行良好,但是当他们使用Facebook注册/login时不行。 当他们login时,他们被redirect到谢谢页面,因为使用Passport JS和Node设置Facebook时只有一个urlcallback。 这是我的代码: passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(id, done) { UserActivity.findOne(id,'uid ref', function (err, user) { done(err, user); }); }); passport.use(new FacebookStrategy({ clientID: 'XXXXXXXXXXXX', clientSecret: 'XXXXXXXXXXXXXXXX', callbackURL: "https://www.xxxxxxx.com/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { //console.log(profile); User.findOne({ uid: profile.id }, function(err, uInfo) { if(err) console.log('Error: '+err); else{ //User exists: we […]

Cookie分析器与passport.js的使用仍然需要?

在node.js找不到关于一般passport.js安装和声明的任何信息(在passport.js站点上)。 在教程中,我总是看到express session中间件和cookie-parser按照passport要求进行陈述,但session文档( https://github.com/expressjs/session )指出: 自1.5.0版本以来,不再需要使用cookie分析器中间件来使这个模块正常工作。 这个模块现在直接在req / res上读取和写入cookie。 如果这个模块和cookieparsing器之间的秘密不一样,使用cookieparsing器可能会导致问题。 所以,我需要使用session和cookie-parser的passport出于某种原因,或者我只能使用session ,我需要调整一些东西呢?

成功login后,将用户数据从Nodejs服务器推送到Angular

我尝试通过使用PassportJS通过Facebooklogin我的用户,并将用户数据传递给Angular。 在服务器端,用户控制器中的Facebookcallback代码如下: exports.facebookCallback = function() { return function(req, res, next) { passport.authenticate('facebook', function(err, user, email) { if (err || !user) { return res.redirect('/auth'); } req.login(user, function(err) { if (err) { return res.redirect('/auth'); } return res.redirect('/'); }); })(req, res, next); }; }; 从我从PassportJS文档中了解到,调用req.login应该将用户数据放入会话中。 我在服务器端的路线如下所示: app.get('/auth', usersCtrl.auth); app.get('/auth/signout', usersCtrl.logout); app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['email', 'user_hometown'] })); app.get('/auth/facebook/callback', […]

如何将configuration的护照对象传递到Express4中的路由模块?

因为从Express 4你不应该这样做 require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport module.exports = function(app, passport) { // ===================================== // FACEBOOK ROUTES ===================== // ===================================== // route for facebook authentication and login app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); // handle the callback after facebook has authenticated the user app.get('/auth/facebook/callback', […]

nodejs passport ldapauth“无法读取”属性的undefined“

我正尝试使用passport-ldapauth和express来validationLDAP服务器。 使用ldap url(ldap:// myserver …)进行身份validation的工作正常,但是使用ldaps可以获得: TypeError:无法读取未定义的属性'on' 在setupSocket(… \ ldapauth-fork \ node_modules \ ldapjs \ lib \ client \ client.js:111:14) 在Client._connect(… \ ldapauth-fork \ node_modules \ ldapjs \ lib \ client \ client.js:742:3) 在新客户端(… \ ldapauth-fork \ node_modules \ ldapjs \ lib \ client \ client.js:247:22) 在Object.createClient(… \ ldapauth-fork \ node_modules \ ldapjs \ lib \ […]

快递:req.flash()需要会话

我有一些问题,让连接闪光灯工作,我得到的错误信息是: '错误:req.flash()需要会话' 我已经看到这可能是因为应用程序的顺序,但我不知道这是否是这种情况。 App.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 session = require('express-session'); var flash = require('connect-flash'); var passport = require('passport'); var app = express(); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use(session({secret: '{secret}', […]