Articles of openid

将蒸汽authentication与前端框架集成

我目前正在开发一个应用程序与Node.js后端和vue.js作为前端框架。 作为login应用程序,我正在使用护照蒸汽,在后端完美地工作。 用户被redirect到前端以便login,后端处理login并返回req.user。 在后端检查user.isAuthenticated作品。 我的问题是如何将用户信息和用户身份validation的会话传递给前端客户端? 服务器代码: app.get('/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/' }), function(req, res) { res.redirect('http://localhost:8080/#/index'); }); app.get('/account', ensureAuthenticated, function(req, res){ res.send({user: req.user}); }); 当用户通过蒸汽authentication成功后,他被redirect到前端 – > localhost:8080 /#/ index,创build一个axios请求到localhost:/ 3001 /账户后端。 不幸的是前端请求没有被authentication。 有什么build议么 ? 非常感谢 !!

检测提供商注销passport.js?

我知道web应用程序通常不会将其会话绑定到其login提供程序的会话,但是我有一个要求,即当用户login其login提供程序时需要检测,以便我们可以从应用程序中签出以及。 我目前在我的Node.js服务器上设置了护照。 login很容易实现,它一直工作正常,但我一直没能find提供者的轮询当前用户会话状态的文档。 护照是否提供检查这种状态的手段? 再次调用authenticate路由总是做一个redirect,所以我正在寻找一个简单和ajax友好的方式来得到是或否的答案的问题:'用户仍然有一个有效的会议在他们的login提供者的结束? 谢谢

Nodejs + express + OpenId连接redirect到根

我已经在我的应用程序中集成了Passport OpenId Connect( https://github.com/jaredhanson/passport-openidconnect )成功 passport.use('provider', new OICStrategy({ issuer: "https://fssfed.stage.ge.com/fss", authorizationURL : "https://MYFEDERATIONURL/authorization.oauth2", tokenURL : "https://MYFEDERATIONURL/token.oauth2", userInfoURL : "https://MYFEDERATIONURL/userinfo.openid", callbackURL : "http://MYRETURNURL:5000", clientID: "MYSECRET", clientSecret: "MYPASSWORD" }, function(accessToken, refreshToken, profile, done) { console.log(accessToken); console.log(refreshToken); console.log("profile:") console.log(profile); console.log(done); return done(null, profile); } )); 和 app.use('/', function(req, res, next) { console.log(req.url + " " + req.isAuthenticated()); if […]

Keycloak – 授权validation失败。 原因:无效标记(错误的ISS)

所以我有一些问题让我的Keycloak连接示例工作。 基本上我有一个快速路由在我的虚拟机上与Keycloak简单的检查 (10.10.10.54:8081)如下。 app.get('/api*', keycloak.protect(), (req, res) => res.status(200).send({ message: 'Hit API Backend!', })); 我的Keycloak服务器在一个单独的虚拟机上(对于这个例子http://keycloak.myexternaldomain.ca/auth/ ) 我一直在做这个testing的电话是。 RESULT=`curl –data "grant_type=password&client_secret=mysecret&client_id=account&username=myusername&password=mypassword" http://keycloak.myexternaldomain.ca/auth/realms/TEST/protocol/openid-connect/token` 这每次都会返回正确的访问令牌, TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'` 将令牌parsing为一个variables。 curl http://10.10.10.54:8081/api -H "Authorization: bearer $TOKEN" 这仍然不断返回访问拒绝,我尝试了一个类似的例子与Keycloak快速启动节点服务 ,看看是否有一个更详细的错误。 我收到回来的是 Validate grant failed Grant validation failed. Reason: invalid token (wrong ISS) 虽然如果我等了一会儿,它会给我一个过期的令牌错误,所以我觉得我在正确的轨道上。 所以很明显,我从哪里发布令牌不符合它所期望的地方有什么问题? 我可以拨打电话,通过cURLing从keycloak服务器本身获取用户凭据 curl […]

使用OpenID与服务器端JavaScript(node.js),但我得到一个错误

使用这个例子中的代码,我打开浏览器,input“localhost /”,然后用那个login表单获取页面。 我inputURL到我的blogspot,但我得到以下错误:错误:AuthRequest无效:0x300:错误validation身份validation请求中的返回URL。 NS:HTTP://specs.openid.net/auth/2.0。 我在这里做错了什么? 哦,是的,我几乎忘记了,我如何使用OpenID存储数据? 公寓从login该帐户,我想保存有关用户的信息!

雅虎OpenID返回无效签名与护照 – 雅虎

截至今天,2013年12月10日,似乎passport-yahoo无法正确完成openid工作stream程。 我们正在得到一个无效的签名。 我对openid的知识是相当有限的,而且我仍然在研究这个问题。 任何人都可以提供一些洞察这个问题? 其他人是否也遇到同样的问题? 这是来自节点的堆栈跟踪: { "message":"Failed to verify assertion", "stack":"Failed to verify assertion (message: Invalid signature) at app/node_modules/passport-yahoo/node_modules/passport-openid/lib/passport-openid/strategy.js:184:36 at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1063:12 at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1188:14 at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1269:7 at Object.openid.loadAssociation (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:107:5) at _checkSignatureUsingAssociation (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1231:10) at _checkSignature (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1221:5) at _verifyAssertionAgainstProvider (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1184:3) at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:1155:16 at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:678:7 at app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:533:11 at done (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:254:9) at IncomingMessage.<anonymous> (app/node_modules/passport-yahoo/node_modules/passport-openid/node_modules/openid/openid.js:258:32) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 […]

如何在没有Cookie的情况下在SPA中使用第三方authentication服务?

在我的Web应用程序中,恰好是一个SPA(单页应用程序),我有OpenID和OAuth2.0客户端用于使用第三方服务进行用户validation。 即Google(OpenID),Yahoo(OpenID),Windows Live(OAuth2)和Facebook(OAuth2)。 现在,我已经设置了一个令牌端点,用于交换不记名令牌的用户凭证。 这里的目标是通过在SPA的所有请求中设置的授权标头replaceCookie。 为此,我使用OAuth2.0客户端密码身份validation策略和“密码”grant_type根据凭据(oauth2orize + passport-oauth2-client-password)对用户进行身份validation。 我想知道 : 如何使用第三方服务validation的用户继续使用令牌承载validation方法? OAuth2.0规范中有什么处理这种情况? 这种实现的常见做法是什么?

在iOS / Node应用程序中使用google / twitter / linkedInauthentication

我正在尝试为我正在开发的几个应用程序制定出最好的架构。 在这两个应用程序,我想利用谷歌/叽叽喳喳/ LinkedIn /等提供用户身份的身份validation。 该应用程序是由一个iOS应用程序,它可以select发送数据到我在node.js中写入的服务器。 我想利用OAuth或者OpenId来处理识别上面的服务器的用户,这样我就不必把我自己的authentication系统。 换句话说,允许用户在select上传数据时重新使用他们的ID。 我还应该注意到,除了识别用户,获取姓名和电子邮件地址之外,目前我还没有打算使用他们的任何API。 我想我有两个select: 将授权代码放在iOS客户端中,并使用可以validation的数据将某种密钥传输到服务器。 保持iOS客户端相当愚蠢,并处理来自节点服务器的授权。 我可能更喜欢第二个选项,因为这意味着我可以集中身份validation,并能够支持一个网站。 这是我目前的理论。 谁能做这样的事情给我一些关于利弊,OAuth或OpenId的指针,或者链接到一些例子?

Sdk的获取身份validation令牌张贴在facebook / twitter /链接,然后发布使用nodejs

我正在开发一个iOs应用程序,在哪个用户设置他的社会地位,该状态将按计划时间(可以在1,2 …星期后)从cronjob(服务器端在nodejs上)发布。 请build议我有任何sdk为此,使用我可以获得离线权限(authentication令牌[该标记是必需的张贴])。 我知道ShareKit,但它只是分享的东西。 我发现堆栈上有类似的问题 ,但没有答案:

如何在Heroku上使用多个dyno的node-openid?

我正在尝试使用node-openid (通过passport-google )来使用他们的Google凭证对我的用户进行身份validation。 它在我的开发机器上工作正常,但是当我用2个dynos将它部署到Heroku时,它在一个dyno处理整个OpenID对话时起作用,当对话在一个dyno上开始并在第二个时完成时失败。 在这种情况下,我得到以下错误: 2013-01-15T15:18:24+00:00 app[web.2]: Failed to verify assertion (message: Invalid association handle) 2013-01-15T15:18:24+00:00 app[web.2]: at Strategy.authenticate.identifier (/app/node_modules/passport-google/node_modules/passport-openid/lib/passport-openid/strategy.js:143:36) … 什么是正确的方式来处理这个? 我应该将会话状态保存在数据库中,以便两个dynos都可以访问它吗? 更新: 这里是我用来解决问题的代码,通过在MongoDB中存储关联。 var GoogleStrategy = require('passport-google').Strategy; // We have to save the OpenID state in the database so it's available to both // dynos. db.collection('OpenID').ensureIndex({expires: 1}, {expireAfterSeconds: 0}, function(err, result) { if […]