Tag: passport.js

护照:允许注册姓名和电子邮件地址? (地方战略)

有没有办法允许用户使用他的密码,电子邮件和名字在本地策略上注册? 我在网上find的每个例子只使用名字/密码或电子邮件/密码。 我也搜查了整个护照文件,但是这些文件根本没有帮助。 这只是一个充满实例的臃肿网站。 我只需要一个函数,类和variables护照使用清单,并解释他们和他们的每个参数。 每个好的图书馆都有类似的东西,为什么我找不到护照? 这里是我的代码的关键部分: passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', //are there other options? //emailField did not seem to do anything passReqToCallback: true // allows us to pass in the req from our route (lets us check if a user is logged in or not) }, function(req, email, password, done) { […]

Sequelize – findOne()。success()是未定义的

我正在关注passport.js文档以创build一个使用Sequelize作为ORM的LocalStrategy作为我的postgres数据库。 然而,在authentication过程中,做User.findOne(…).success(function(user){…]}); 在我的login.js模块返回undefined 。 我究竟做错了什么? user.js的: var pg = require('pg'); var Sequelize = require('sequelize'); var sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', port: 5432, dialect: 'postgres' }); var User = sequelize.define('users', { username: Sequelize.STRING, password: Sequelize.STRING }); User.sync(); module.exports = User; 我的login.js(路由器) var express = require('express'); var router = express.Router(); var passport = […]

Facebook iOS SDK和passport-facebookauthentication

我试图在iOS的Facebook SDK应用程序上使用passport-facebook实现服务器的Facebook身份validation,我不清楚如何在后端设置通行证身份validation。 基本上iOS客户端使用Facebook进行身份validation并获取sessionToken,我想将其传递给passport-facebook / auth / facebook / callback,以便使用FBvalidation会话令牌,并通过node.js从我们的数据库中查找用户。 那是使用passport-facebook的正确方法,还是我需要call / auth / facebook(以及我需要传递的参数)。 这个问题提到使用Facebook iOS SDK构build应用程序,然后在服务器上进行身份validation,但没有提到如何做到这一点。 https://github.com/jaredhanson/passport-facebook/issues/7 我也可以写我自己的定制护照策略,只是通过FB会话令牌,我可以用服务器上的FBgraphicsAPI来validation,以获得FB用户ID并validation它是一个有效的会话,如下所述: deviseFacebookvalidationiOS应用程序也访问安全的Web服务

护照和oauth有什么区别?

我正在尝试使用express.js构build一个身份validation服务,但是我还没有注意到身份validation模块的想法。 护照和oauth中间件有什么区别? 他们是相互依赖的吗? 没有oauth服务器生成令牌到BearerStrategyvalidation是没有用的BearerStrategy? 我是否正确? 我已经阅读了oAuth2及其身份validationstream程,但是我仍然失去了这个非耦合的代码。 我试图build立资源所有者密码authentication与刷新令牌我的AngularJS前端与后端API通信,我面临的密码.js策略(基本,承载,ClientPassword)与oauth2orize在另一端的许多组合。 所以,我想知道如何authentication在NodeJS上工作的一个非常简单的解释。 实际上,我知道Express并不是在发明一种authentication如何工作的新方法,但是这些模块太不显眼了,所以我需要了解它如何实现它们的协同工作的基础。

如何使用Passport.js访问Cookie

我正在使用Passport.js来实现login到我的节点应用程序。 但在我的应用程序中,我需要访问用户的ID,目前,我不知道如何实现这个事情! 我怎样才能访问用户名,或者我应该自己发送一个cookie?

我如何configurationpassport-github来确认callback用户?

我有一个服务,我的目标是让用户通过OAuth授权给他/她的Github帐户。 API层是无状态的,所以我不想维护任何会话信息。 我到目前为止的代码是: app.use passport.initialize() app.use passport.session() passport.use new GitHubStrategy clientID: global.config.oauth.github.clientID clientSecret: global.config.oauth.github.clientSecret callbackURL: "http://localhost:9500/auth/github/callback" passReqToCallback: true , (req, accessToken, refreshToken, profile, done) -> console.log req.params serviceQuery = service: 'github' provider_id: "#{profile.id}" UserId: 13 global.db.Service.find where: serviceQuery .then (dbService) -> if not dbService newService = service: 'github' token: accessToken secret: null provider_id: profile.id raw: […]

Passportjs Facebookloginstream程(passport-facebook vs passport-token)

使用Node,Express和Passport。 好的,我和我的团队正在构build双面市场types应用程序的REST API。 我们已经为电子邮件和密码login设置了一个基本的LocalStrategy。 我们希望使API用户代理不可知,所以我们可以通过web,Android或iOS使用API​​。 但是我们感到困惑的是FBloginstream程。 问题是,Passportjs幕后究竟发生了什么。 我们已经考虑过“护照 – 脸书”和“护照 – 脸书 – 标记”的策略,并不能真正决定去哪一个。 这是我目前对stream量的理解: 如果这是正确的,我最好让客户端从FB获取access_token然后发送给我,或者让FB通过redirect和callbackURL处理它? 护照令牌: passport.use('facebook-token', new FacebookTokenStrategy( { clientID: 'xxx', clientSecret: 'xxx' }, function(accessToken, refreshToken, profile, done) { // asynchronous //console.log("into passport auth"); process.nextTick(function() { User.findOne({'facebook.id': profile.id}, function(error, user) { console.log("user is " + JSON.stringify(user)); console.log("profile is " + JSON.stringify(profile)); //do user […]

与passportjs错误:未知的身份validation策略“本地”

我正在开发一个nodejs应用程序并使用passportjs进行身份validation。 我正在使用护照的本地策略。 但是当我尝试login时,出现以下错误: Error: Unknown authentication strategy "local" at attempt (/home/project/node_modules/passport/lib/middleware/authenticate.js:166:37) at authenticate (/home/project/node_modules/passport/lib/middleware/authenticate.js:338:7) at exports.authenticate (/home/project/controllers/RegistrationsController.js:87:4) at callbacks (/home/project/node_modules/express/lib/router/index.js:164:37) at param (/home/project/node_modules/express/lib/router/index.js:138:11) at pass (/home/project/node_modules/express/lib/router/index.js:145:5) at Router._dispatch (/home/project/node_modules/express/lib/router/index.js:173:5) at Object.router (/home/project/node_modules/express/lib/router/index.js:33:10) at next (/home/project/node_modules/express/node_modules/connect/lib/proto.js:193:15) at /home/project/node_modules/express-flash/lib/express-flash.js:31:7 这是我的passport-config.js文件: var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var User = require('../models/user'); passport.serializeUser(function(user, done) { done(null, user.id); […]

Passport.js + Express.jsauthentication后将用户转发到原来的目的地

我有一个应用程序,是在服务器上的Node + Express + Passport和客户端上的jQuery + Backbone.js。 客户端使用URL中的哈希标签,但对于某些function来说,重要的是用户login。 我希望应用可以通过URL访问,例如http://mydomain.com/app#cone/waffle/flavor/mint/toppings/sprinkles ,以便: 如果用户已经login,他们直接去请求的URL没有麻烦 如果用户还没有login,他们去/login ,然后去请求的URL 在这个SOpost之后, 在Node.js Passport的Google策略上自定义returnUrl ,我已经这么做了 如果他们已经login,他们直接去URL,哈希标签和所有 如果他们没有logging,它会把他们带到login页面,然后到请求的url,但… 它似乎从login后redirect的原始url中去掉散列参数。 有没有办法保存哈希参数时redirect到原来的目的地? 从这篇文章, 从请求url获取散列参数我得到的想法是散列标签不可用在服务器上,这是使用散列标签的整个点。 所以我怀疑这是不可能的。 也许caching在本地参数不知何故,检索他们redirect,说[original URL minus hastags] + #use-cached-params ?

使用Passport.jsvalidationangular色和身份validation

所以我想在API中制作一些路由,根据MongoDB中定义的用户angular色显示不同的数据。 这是我现在所拥有的一个样本,它的工作原理 router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) { if (req.user.role == "premium") { return res.send('you can see this content'); } else { return res.send('you can not see this content'); } }) 然而,最终目标是向用户呈现至less一些东西 ,即使他们没有以正确的angular色login或authentication。 router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) { if (req.user.role == "premium") { return res.send('this is premium content'); } else […]