Articles of passport.js

NodeJS中的无状态身份validation库

我相信RESTful API的最佳实践是无状态的。 我读了关于无状态身份validation的技巧,但并不完全清楚如何实现它(看起来像一堆令牌等)。 PassportJS是一个很好的authentication库,但它不是无状态的? 是否有某种types的库可以帮助我创build无状态API(带有身份validation)? 我想要使​​用像Google,Twitter等SSO(单点login),所以如果库为我处理(比如PassportJS),这将是很好的。

Passport-twitter:在会话中找不到请求令牌

就在昨天在Heroku我开始有这个错误在微博login快递 Error: failed to find request token in session at Strategy.<anonymous> (/app/node_modules/passport-twitter/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:120:54) at Strategy.authenticate (/app/node_modules/passport-twitter/lib/passport-twitter/strategy.js:82:40) at Passport.authenticate (/app/node_modules/passport/lib/passport/middleware/authenticate.js:153:14) at callbacks (/app/node_modules/express/lib/router/index.js:272:11) at param (/app/node_modules/express/lib/router/index.js:246:11) at pass (/app/node_modules/express/lib/router/index.js:253:5) at Router._dispatch (/app/node_modules/express/lib/router/index.js:280:4) at Object.handle (/app/node_modules/express/lib/router/index.js:45:10) at Context.next (/app/node_modules/express/node_modules/connect/lib/http.js:204:15) at Context.<anonymous> (/app/node_modules/passport/lib/passport/context/http/actions.js:64:8) 有什么build议?

NodeJS jwtStrategy需要一个函数来从请求错误中检索jwt

我从https://devdactic.com/restful-api-user-authentication-1/学习了教程。 但是我在这部分有错误 passport.use(new JwtStrategy(opts, function(jwt_payload, done) 这是我运行节点“server.js”时的错误 /home/chibi/Documents/connect/project/node_modules/passport-jwt/lib/strategy.js:39 throw new TypeError('JwtStrategy requires a function to retrieve jwt f ^ TypeError: JwtStrategy requires a function to retrieve jwt from requests (see option jwtFromRequest) at new JwtStrategy (/home/chibi/Documents/connect/project/node_modules/passport-jwt/lib/strategy.js:39:15) at module.exports (/home/chibi/Documents/connect/project/config/passport.js:10:16) at Object.<anonymous> (/home/chibi/Documents/connect/project/server.js:30:29) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at […]

Sails.js节点服务器req.session始终为空,使用Passport-local策略。

在http://localhost:4200上运行应用程序应用程序。 Sails App正在http://localhost:1337 。 我有一个预注册调查的政策。 所以在/api/controllers/ProcessSurveyController.js的风帆方面,我有这样的: module.exports = { process_survey: function(req, res){ if(req.body === {} || req.body === null){ res.status(400); return res.send({err: "something bad happened"}); } var params = req.body; req.session.user = {}; if(params.p_1 === '1' && params.p_2 === '1' && params.p_3 === '0' && params.p_4 !== "Bad Param"){ req.session.user.qualifies = true; res.status(200); return res.send({message: […]

使用Android帐户login网站

我正在构build一个响应式Web应用程序。 它使用谷歌oauthlogin,它工作得很好(nodejs与passportjs)。 当从android手机浏览网站,并按下“login”,我得到了谷歌login页面,就像使用桌面时一样。 有没有可能从Android使用谷歌帐户,而不是强迫用户input他的凭据?

即使login后,NodeJs Passport isAuthenticated()也会返回false

我是新来的angularJs,并尝试build立一个网站的本地身份validation。 我已经通过各种来源,这个https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs是非常有帮助的。 当我尝试在我的本地主机build立相同的代码进入一个循环。 app.post('/ login',…..)正在返回用户的响应,但在此之后加载pipe理页面,它正在检查用户是否通过调用app.get('/ loggedin',. ..)和req.isAuthenticated()即使在login后也返回false,并进入循环。 我不明白为什么这是发生plz帮助我。 服务器端代码 var express = require('express'); var http = require('http'); var path = require('path'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; //================================================================== // Define the strategy to be used by PassportJS passport.use(new LocalStrategy( function(username, password, done) { if (username === "admin" && password === "admin") // stupid […]

Node.js Express护照Cookie过期

我在我的应用程序中使用Passport进行身份validation,而且我也使用Express。 总结我的问题: 我的loginfunction最初工作正常,但在任何用户会话超时后,用户无法login。 我正在使用标准的本地策略进行身份validation。 根据我的设置,我将尽可能包含一个示例: //————- //Set up authentication with Passport //————- var userModel = require('./models/user')(db); passport.use(new LocalStrategy( function(username, password, done) { var errorMessage = 'Incorrect username/password combination.'; userModel.GetUserByUsername(username, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: errorMessage }); } user.validatePassword(password, function(isPasswordCorrect) { if (!isPasswordCorrect) { […]

用sails.js实现passport-http-bearer标记

我正在尝试实施护照的passport-http-bearer战略,但它发现没有用户信息Bearer realm="Users" 。 我的request是一个post请求: {'token':'simple_access_token',} 任何人有任何想法,为什么会出现这个错误? 另外我知道这里req应该是https或ssl而不是http 。 我怎么做? 我使用的代码是: bearerPassportToken: function(req,res){ passport.authenticate('bearer', function(err, user, info){ if ((err) || (!user)) { if (err) return; if (!user) console.log("info);//Info: Bearer realm="Users" res.redirect('/login'); return; } req.logIn(user, function(err){ if (err){ res.redirect('/login'); } //Need to write code for redirection ; }); })(req, res); },

使用passport-jwtvalidation节点API

我正在尝试使用passport-jwt来设置JWTauthentication。 我想我已经采取了正确的步骤,但testingGET不会成功,我不知道如何debugging它。 以下是我所做的: 尽可能设置护照-jwt直接从文档中删除 var jwtOptions = { secretOrKey: 'secret', issuer: "accounts.examplesoft.com", // wasn't sure what this was, so i left as defaulted in the doc audience: "yoursite.net" // wasn't sure what this was, so i left as defaulted in the doc }; jwtOptions.jwtFromRequest = ExtractJwt.fromAuthHeader(); passport.use(new JwtStrategy(jwtOptions, function(jwt_payload, done) { User.findOne({id: jwt_payload.sub}, function(err, user) […]

PassportJS会话混合起来

在ExpressJS应用程序中,当推送到生产服务器时,护照会话随机混合。 随机,即使我没有注销我的会话,该页面也可以加载另一个用户的视图。 如果不做其他事情,另一个更新会使我回到我自己的账户(也是随机的)。 我们的两个Web应用程序发生这种现象,这两个应用程序是由两个单独的用户按照其网站上的Passport指南编码的。 这两个networking应用程序都使用Facebook连接/ API。 这发生在Redis和File会话存储上。 我看到一篇关于使用全局variables的文章 :我们确定只使用本地作用域。 有什么我们做错了? 更新v1 在一个应用程序中,我们为Passport的serialize / deserialize实现了以下内容: passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) { done(null, obj); }); 另一方面,我们也试过: passport.serializeUser(function (user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { User .where({id: user.id}) .fetch() .then(function (user) { done(null, user); }, function (err) { done(err, user); }); }); 无论哪种方式,该应用程序仍然有其会议混合起来。 […]