Tag: passport.js

未知的身份validation策略护照

我已经使用基本模板设置了MEAN.IO应用程序,并尝试添加Windows Live和Yahoo通行证身份validation依赖项。 我有npm安装了这两个依赖关系,并设置了代码(见下文),就像其他护照计划,如Facebook和谷歌(预先安装和正在工作)。 passport.js: YahooStrategy = require('passport-yahoo-oauth').Strategy, WindowsLiveStrategy = require('passport-windowslive').Strategy, GoogleStrategy = require('passport-google-oauth').OAuth2Strategy, // Use windows live strategy passport.use(new WindowsLiveStrategy({ clientID: config.strategies.windowslive.clientID, clientSecret: config.strategies.windowslive.clientSecret, callbackURL: config.strategies.windowslive.callbackURL }, function(accessToken, refreshToken, profile, done) { User.findOne({ 'windowslive.id': profile.id }, function(err, user) { if (user) { return done(err, user); } user = new User({ name: profile.displayName, email: profile.emails[0].value, username: […]

更新/刷新快速会话

在我的应用程序中,如果用户未login,则会限制某些操作和页面的访问权限。我有: var restrict = function(req, res, next) { if (!req.user) { console.log("USER isn't logged in.") return res.status(403).send('Access or action denied, please log in'); } next(); } app.get('/stocks', restrict, MainHandler.findAllStocksFromUser); app.get('/stocks/:id', MainHandler.findStockByIdAndDates); app.put('/stocks/:id/stockActions', restrict, MainHandler.handleStockAction); 我本质上是试图每次客户端向服务器发出请求时刷新一个会话,以便服务器不会注销用户/不应该销毁会话。 对于testing,我希望会话过期/用户被注销,如果20秒后没有用户向服务器发出请求。 我有: app.use(session({secret: 'secret', saveUninitialized: true, resave: true, expires: new Date(Date.now() + (20000))})); 然后,我尝试使用中间件来每次使用请求时刷新到期date: // Session-persisted message middleware app.use(function(req, res, […]

Express Passport.js成功redirect不加载页面,请求保持挂起

我正在尝试使用passport.js和护照本地进行基本的用户名/密码authentication。 虽然failureRedirect完全按照它应该做的事情(redirect到一个指定的页面),但是successRedirect会保持挂起状态,并且对指定的页面有请求,并且在一段时间之后它会返回“空的响应”。 http://www.deviantpics.com/VdG 正如你在这幅图中看到的那样,当它请求仪表板时,它说它的大小是0B,但是当我在仪表板上进行redirect时它说它有1.6B。 我已经看遍了整个Stackoverflow,我找不到一个答案,可以帮助我。 你可以请我检查我的代码,并build议一些事情之前,我疯了。 这是护照加载代码 //set expression var expressSession = require('express-session'); app.use(expressSession({ secret: credentials.session.secret })); //set passport var passport = require('passport'); var localStrategy = require('./strategies/auth/local.js'); passport.use('local', localStrategy); passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); app.use(passport.initialize()); app.use(passport.session()); routes.js module.exports = function(app){ //main app.get('/', main.home); […]

Passport-js如何创build自定义策略

我期待创造我自己的战略。 我有client_id , client_secret和相关的元数据。 我也知道执行的stream程。 所以我想创build自己的策略并添加我的自定义逻辑进行身份validation。 我看护照战略 ,但我不知道如何实施自己的战略。 任何人都可以解释吗?

如何保持用户login? ExpressJS和护照有可能吗?

我有一个服务器在node.js使用快递和护照passport-local策略的passport-local 。 我有数据库中的用户,通过护照我能够validation他们,不幸的是,当第二个请求来自同一个客户端req.isAuthenticated()方法返回false 。 请求中也没有用户( req.user = undefined )。 我也检查过,当进行身份validation,虽然我从passport.authenticate('local'…取回用户passport.authenticate('local'…我没有得到req.user填充然后,如果我尝试手动设置它只是不传播以下请求。 我不明白我做错了什么,这是我的代码。 server.js var express = require('express'), compass = require('node-compass'), routes = require('./server/routes') http = require('http'), path = require('path'), passport = require('passport'), LocalStrategy = require('passport-local').Strategy, Database = require('./server/repositories/database'), Configuration = require('./server/config').Config, crypto = require('crypto'); var app = express(); app.enable("jsonp callback"); passport.use(new LocalStrategy( function(email, password, done) { […]

如何为passportjs使用jquery / ajax数据

如果我使用表单字段action="/login", method="post"发送一个login请求,它工作得很好。 类似于这里或这里可用的代码。 但是,如果我使用jquery/ajax发送相同的信息,那么护照似乎不起作用。 没有实际的login通过护照发生,但ajax调用给出了一个令人误解的成功消息。 以下是不工作。 虽然我得到“login成功”的消息,login并没有真正发生。 $('#login_button').click(function () { var email = $('#email').val(); var password = $('#password').val(); alert ('email/pass:' + email + ", " + password); $.ajax({ type: "POST", url: "/login", data: { email: email , password: password }, dataType: 'html' }) .done(function () { console.log("http request succeeded"); alert("login success"); }); }); 我需要使用ajax方法,以便在成功login后在客户端执行一些有用的操作。 例如,启动socket.io […]

手动创build已login用户的护照会话

我正在使用护照js进行login注册。 一旦有新用户login,就会在包含数据库唯一密钥的浏览器上创build(由我自定义)cookie。 所以程序如何工作是: 如果一个新的人login一个cookie是由这个函数创build的 function setCookie(cname,cvalue,exdays) { //alert("Cookie set on tedJavascript"); var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires; } 那么在login页面上input的详细信息将被发送到服务器上的发布function(护照js)。 本地策略authentication码如下(guest,fb等同) passport.use('guest',new LocalStrategy( function(username,password,done){ User.getUserBycookie(password, function(err, user){ if(err) throw err; //if cookie present (checked in terms of password) […]

PassportJS – 在Express应用程序中使用多个护照

假设我需要两个不同的护照在一个明确的应用程序(例如用户和房间)。 所以我定义了两个独立的variables: var passport = require('passport'); var roomPassport = require('passport'); 然后,我用不同的护照策略初始化它们: require('./config/passport')(passport); // pass passport for configuration require('./config/roompassport')(roomPassport); // pass passport for configuration 最后一步是将其设置为Express中间件: // required for passport application.use(session({ secret: 'ilovepassport;-)' })); // session secret application.use(passport.initialize({ userProperty: "user" })); application.use(passport.session()); // persistent login sessions application.use(roomPassport.initialize({ userProperty: "room" })); application.use(roomPassport.session()); // persistent login sessions application.use(flash()); // […]

如何使用PassportauthenticationSails JS应用程序?

我正在使用Sails v0.10.5。 我想用Passport集成一个带有用户名和密码的authentication系统。 为此,我正在通读以下文件: [如何]使用Sails.js实现Passport.js身份validation 使用PASSPORT身份validation创build一个SAILS应用程序 但是,我在评论中看到这些已经过时,不再适用于风帆v.10.5。 我试过这些,它不是身份validation,我可以访问所有的控制器操作没有任何身份validation。 有没有更新的版本或任何其他有用的文件集成?

有没有人成功地使用Azure AD对Node.js Web应用程序的用户进行身份validation?

我正尝试使用Azure Active Directory为我的node.js Web应用程序validation用户,到目前为止没有运气。 我想知道是否有人实际上已经实现了,因为文档是相当差的。 通常有典型的代码,但并不真正表明所需的参数是什么以及它们应该是什么。 我已经尝试过passport-azure-ad(我认为是来自Microsoft)和passport.azure-ad-oauth2(来自Auth0(?))。 对于passport-azure-ad,我尝试了BearerStrategy和OIDCStrategy,没有运气。 对于BearerStrategy,我得到了一些关于我的客户端和资源的神秘消息来识别同一个应用程序,但由于没有文档告诉我应该是什么,所以我很茫然。 对于OIDCStrategy,我稍微接近一点,因为我redirect到Microsoft进行身份validation,但返回时出现错误“错误:ID令牌不存在于响应中”。 我猜我的要求是不正确的,无论出于什么原因都给我一个回报,但是因为没有文件…(你明白了)。 无论如何,如果有人已经成功地实现了这个目标,并且能够分享一些关于它是如何实现的,那将是很棒的。 非常感谢。