Articles of everyauth

在同一页面使用Twitter进行身份validation

我正在使用Node模块everyauth用Twitter进行身份validation。 目前,用户必须使用redirectpath进入/auth/twitter/进行身份validation。 问题是redirectpath重新加载页面,这打破了我build立的“单页应用程序”结构。 是否可以在“单页”边界内保持与Twitter的身份validation?

通过Github进行身份validation(使用everyauth)

我正在使用everyauth ,并且无法通过github进行身份validation。 看来,我所遵循的所有步骤都是正确的,但是当单击“connect with github”链接时,它一直告诉我cannot GET /auth/github 。 这是我的代码的要点: https : //gist.github.com/2641260 任何帮助将不胜感激!

NodeJS everyauth获取访问令牌

我正在尝试为NodeJS使用FB API + everyauth模块获取access_token,然后使用Facebook_Graph_API模块实现服务器端图API请求(需要访问令牌)。 根据everyauth页面: 然后,从您的视图中,您将有权访问以下helper方法附加到助手everyauth : everyauth.loggedIn everyauth.user – 与会话关联的用户文档 everyauth.facebook – 这相当于存储在req.session.auth.facebook ,所以你可以做的事情,如… everyauth.facebook.user – 返回从OAuth提供者提供的用户json。 everyauth.facebook.accessToken – 代表用户返回OAuth提供者提供的access_token,用于授权的API调用。 而且你也得到了其他模块的模式 – 例如, everyauth.twitter.user , everyauth.github.user等 在我的.jade模板中,我可以使请求很好: – if (everyauth.facebook) h3 Facebook User Data p= JSON.stringify(everyauth.facebook.user) p= 'facebook access token is '+ everyauth.facebook.accessToken 我的问题是,我怎样才能从服务器端JavaScript获取访问令牌? 我注意到了 app.get('/', function (req, res) { res.render('home'); console.log(req.sessionStore.sessions.); }); req对象确实包含access_token值,但相应的JSON对于几十个API来说是非常难以parsing的,并不是真正实用的。 […]

Express 3.0 + Everyauth + HTTPS

我正在使用expression式3和everyauth为google oauth的nodejs。 实现如下所示: everyauth.google /* snip */ .callbackPath('/loggedin'); var app = express(); app.configure(function(){ /* snip */ app.use(everyauth.middleware()); } var server = https.createServer(sslOptions, app); server.listen(app.get('port'), function(){ // … }); 现在,当我去到谷歌loginpath它说: 请求中的redirectURI: http://localhost:4545/loggedin与注册的redirectURI不匹配 这是正确的,因为我只在google api控制台中添加了httpS URI。 请注意,我正在使用HTTPS(secure!),并且由于某种原因,everyauth会用httpreplace我的url中的https。 我想这可能是因为我在app.use(everyauth.middleware());之后创build了https服务器app.use(everyauth.middleware()); 声明。 但是,如何重写代码,以便everyauth不会忽略https? 有没有移动app.use(everyauth.middleware());的可能性app.use(everyauth.middleware()); 在创buildhttps服务器之后的地方声明? 提前致谢!

everyauth密码示例错误

按照他们的指导,我遵循everyauth的安装: http ://everyauth.com/#installation 我试图运行密码的例子,但在我运行服务器,并在浏览器中去localhost:3000我得到这个错误: Error: \workspace\test\node_modules\everyauth\example\views\home.jade:102 100| label(for='openid_identifier') OpenID Identifier:   101| input(type='text', name='openid_identifier') > 102| input(type='submit') Login 103| – else 104| h2 Authenticated 105| – if (everyauth.facebook) input is self closing and should not have content. at Object.Compiler.visitTag (\workspace\test\node_modules\jade\lib\compiler.js:455:32) at Object.Compiler.visitNode (\workspace\test\node_modules\jade\lib\compiler.js:222:37) at Object.Compiler.visit (\workspace\test\node_modules\jade\lib\compiler.js:209:10) at Object.Compiler.visitBlock (\workspace\test\node_modules\jade\lib\compiler.js:292:12) at Object.Compiler.visitNode (\workspace\test\node_modules\jade\lib\compiler.js:222:37) at Object.Compiler.visit (\workspace\test\node_modules\jade\lib\compiler.js:209:10) […]

如何使用everyauth和nodejs来保存用户标识信息

everyauth.everymodule.findUserById被调用一个id参数,everyauth从req.session中select。 这可以用来加载传递给req.user的用户信息 在本地主机上,当节点app.js服务器重新启动时,会话被清除。 我想要做的是设置一个cookie,其中包含我可以传递给everyauth的用户标识,以便在服务器重新启动时知道id和everymodule.findUserBy标识可以做到这一点。 我正在使用expressjs,发现connect-mongodb和cookie-sessions都不起作用。 那么提出的方法是什么呢? 换句话说,有没有预先填充每个用户信息的方法?

值得重新使用一个nodeJS服务器来使用连接(主要为everyauth)?

在过去的6个月里,我一直在研究自己的nodeJS应用程序,我从头开始构build所有的东西。 我的服务器只有几件事情,因为我的应用程序中的大部分工作都是在前端完成的。 我目前正在执行的一件事是用户login+应用程序的Facebook身份validation系统。 似乎每个authentication都比这里的其他任何东西都更加健壮。 但是,您需要有Express或Connect来使用它。 因此,我正在考虑重新编写我的代码来使用ConnectJS(主要是)这个目的。 也就是说,我真的很喜欢有一个非常简单的服务器,只做它需要做的事情,除此之外没有任何事情。 是否有任何其他authentication模块像每个authentication一样健壮,不需要任何人推荐的连接? 对于那些使用Connect的人来说,它提供的其他function有多方便? 是否值得gzipping服务器将返回的数据? 静态文件服务器是否比同样的东西的普通nodejs代码更快或者不同? 我现在非常忙碌,希望有经验的编程nodejs应用程序,无论有没有连接的任何想法。 最好, 萨米 AMMENDMENT – 如果我的服务器收到的每个请求都会涉及使用node-mongodb-native驱动程序连接到MongoDB,那么这是否会改变什么? 我有点困惑,我是否基本上可以将我已经编写的代码作为一个模块,作为我可以添加的一个中间件项目来连接。 如果这句话表明我对连接有什么误解,我很感激任何澄清。

路由器function内部不能获得everyauth的req.user

我是node.js和everyauth的新手。 当我只是在everyauth周围玩,我已经意识到everyauth.user在玉视图工作,但我不能让req.user在页面callback里面工作。 /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , everyauth = require('everyauth') , Promise = everyauth.Promise , util = require('util') , models = require('./models'); //Everyauth setup everyauth.twitter .consumerKey('XXX') .consumerSecret('XXX') .findOrCreateUser(function(session, accessToken, accessTokenSecret, twitterData){ var promise = new Promise(); models.findOrCreateTwitterUser(twitterData,promise); return promise; }) .redirectPath('/'); var app = module.exports = […]

node.js – everyauth – Facebook API和会话处理

我运行一个node.js服务器应用程序,使用everyauth作为我的身份validationscheme,并尝试从我的服务器访问Facebook API。 一旦用户login(通过使用Facebook模块的everyauth),我目前处理这种方式是: var oauth = everyauth.facebook.oauth; oauth.get('https://api.facebook.com/method/fql.multiquery?format=json&queries=' + multiquery, req.session.auth.facebook.accessToken, function (err, data) { // do stuff here }); 这工作最初但几分钟后,通常约10米的不活动,我开始从Facebook API获得过期的令牌响应: Error validating access token: Session has expired at unix time… 在阅读了一些Facebook文档之后 ,似乎大多数访问令牌都应该持续默认的2小时,所以我想知道我是不是以正确的方式构buildAPI调用。 任何build议/想法的欢迎,谢谢! 编辑: 只是多一点的信息,从错误调用返回的过期unix时间确实less于当前时间,只是不知道为什么会这么短。 在此期间,我会做更多的debugging…

在mongoose-auth中编辑用户密码

如何在mongoose-auth中编辑用户密码? 我可以编辑所有其他的参数,但是这不是。 任何想法? 我解决了这个节省盐和散列与bcrypt。