Tag: passport.js

Passport是否支持新的Google+loginfunction?

我正在准备构build一个应用程序,让我想要将身份validation启用给包括Google在内的多个第三方。 该项目将被写入NodeJS,所以我决定使用Passport作为我的authentication模块。 我知道Google 最近发布了Google+loginfunction,该function提供了其他function。 我想利用这些function使用护照,如果它提供。 问题是:在阅读护照文件时,我看不出有什么让我相信Passport支持或不支持新的Google+login。 任何人都知道这个? 注意:我知道我可以直接进行身份validation,但是因为我正在向其他几个第三方提供身份validation,所以我想将所有内容保存在一个地方。 谢谢!

在节点JS中进行authentication的护照

我正在考虑使用Passport Library( http://passportjs.org/ )在Node项目中进行身份validation。 我对以下护照会话function感到困惑: passport.serializeUser(function( user, done ) { done( null, user.id ); }); passport.deserializeUser(function( id, done ) { user.get( id, function ( err, user ) { done( err, user ); }); }); 我想知道: 1)这些请求是否需要进行身份validation? 或者当会话第一次被创build时,他们只被调用一次? 2)如何从我的脚本的其他部分访问“用户”中的信息? 3)对于需要authentication的请求,我在哪里添加任何额外的逻辑。 例如检查是否还没有达到允许的用户空闲时间值。 在此先感谢您的帮助

Passport AngularJS ExpressJS:Access-Control-Allow-Origin不允许Origin null

当我试图使用angular.js的$ http模块来授权twitter应用程序时,我总是得到: XMLHttpRequest cannot load https://api.twitter.com/oauth/authenticate?oauth_token=something. Origin null is not allowed by Access-Control-Allow-Origin. 客户代码: $http({ method: 'GET', headers: { "Content-Type": undefined }, url: '/oauth/twitter' }); 服务器代码: app.configure(function () { app.use(express.cookieParser()); app.use(express.cookieSession({ secret: 'tobo!', cookie: { maxAge: 3600 }})); app.use(express.session({secret: 'secret'})); app.use(passport.initialize()); app.use(passport.session()); }); app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Credentials", true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header("Access-Control-Allow-Headers", […]

在Express应用程序中validationSocket.IO客户端

我有一个快速应用程序启动并运行与Passport.js(与MongoDB后端)的身份validation。 一切都很好,但现在我面临另一个挑战: 我想在我的项目中有一些“聊天”function,为此我使用Socket.IO(实时传递消息)。 该页面在加载之前validation用户是否已login,但仍然可以被绕过。 我希望Socket.IOstream得到保护和授权。 如何将Socket.IO聊天系统集成到基于Passport.js的身份validation中?

授权后护照不会redirect

我遇到了一个问题,当我尝试使用护照login时,页面不redirect。 授权返回true (正确的用户名,密码)。 我很确定它位于我的有效validPasswordfunction的某个地方,但我不确定。 login路线 app.get('/login', function (req, res) { res.render('login', {}); }); login后 app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })); 用户原型 User.prototype.validPassword = function(username, unhashedPassword) { async.waterfall([ function (callback) { User.find({ "username" : username }, function (err, data) { if(err) return handleError(err); callback(null, data); }); }, function (data, callback) { var isGood = […]

为什么expressjs每个OPTIONS响应都发送Set-Cookie头?

我发现我的快递服务器发送了一个Set-Cookie头,以响应我的前端Angular.js项目所做的每个OPTIONS请求。 这个cookie在每个OPTIONS请求上都有一个新的值,但实际上从来没有被Chrome存储过。 当我使用passport.js来validation用户时,对POST请求的响应具有相同的头(同样是一个新的cookie),但是这次我可以看到它被存储,并随后在Cookie头中发送请求。 哪个expression模块正在做这个,为什么? 为什么Chrome不存储cookie? 这比任何东西都更好奇,因为它不会造成任何问题(当试图追踪一个问题时引起了很多混乱)。

如何在NodeJS中获取Instagram用户名和权限

我正在使用Instagram的护照login到我的应用程序。 如何在用户login后获取用户名和访问令牌? 我无法访问中间件部分中的“configuration文件”。 //serialize user in the session passport.serializeUser(function (user, done) { done(null, user); }); //deserialize user in the session passport.deserializeUser(function (id, done) { User.findById(id, function (err, user) { done(err, user); }); }); //callback after successfull login of instagram exports.callback = function (req, res) { // Successful authentication, redirect home. console.log('calling'); var code = req.query.code; […]

使用Passport无法使用Facebook进行身份validation

我正在尝试使用我的应用程序进行Facebook身份validation。 但到目前为止,我的尝试是不成功的。 我对Node完全陌生。 当用户点击那个fbloginbutton时,请求被带到/ auth / facebook路由,在那里他们将被传递到Passport策略。 在那里,他们将被发送到Facebook进行身份validation。 但它从来没有发生。 Facebookauthentication窗口永远不会显示。 好像redirect不起作用。 我做了几个小时的search,但没有得到解决scheme。 以下是我认为对这种情况很重要的部分代码 我已经把我的应用程序ID和应用程序的秘密在config / auth.js module.exports = { 'facebookAuth' : { 'clientID' : 'my-AppID-here', 'clientSecret' : 'my-App-secret-here', 'callbackURL' : 'http://localhost:8080/auth/facebook/callback' } }; 使用Facebook进行身份validation并处理callback的策略是config / passport.js var LocalStrategy = require('passport-local').Strategy; var FacebookStrategy = require('passport-facebook').Strategy; // load up the user model and auth variables var User […]

护照节点validation成功

我正在执行护照authentication到我的节点应用程序,我不明白为什么需要redirect之前,我可以访问响应(res)属性? app.get('/api/loginFailure', function(req, res) { res.status(401).json({message: 'Login Failed', success: true}); }); app.get('/api/loginSuccess', function(req, res) { res.status(200).json({message:'Welcome!', success: true}); }); // process the login form app.post('/api/login', passport.authenticate('local-login', { successRedirect: '/api/loginSuccess', failureRedirect: '/api/loginFailure'})); 正如你所看到的,我使用successRedirect来访问不同的路由,以发回一个JSON响应。 我不希望节点apiredirect实际的应用程序,因为它的意图是不可知的前端。 本地login策略如下。 我怀疑我的困难可能在于我如何从方法中回来; passport.use('local-login', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField: 'email', passwordField: […]

Sails.js:如何使用sails-generate-auth注册用户后返回访问令牌?

我在我的sails.js应用程序中使用sails -generate-auth 。 我按照这个教程来整合这个与我的应用程序。 当我调用localhost:1337/auth/local/register它将路由到我在AuthController callback操作。 我的callback行为如下 callback: function (req, res) { function tryAgain(err) { //some validation } } passport.callback(req, res, function (err, user, challenges, statuses) { if (err || !user) { return tryAgain(challenges); } req.login(user, function (err) { if (err) { return tryAgain(err); } //Return the access token created by passport instead of success. […]