使用 Ruby 向 OpenID 提供商请求信息

发布于 2024-08-02 17:41:16 字数 644 浏览 1 评论 0原文

我目前在我的 Sinatra 应用程序中使用 ruby​​-openid gem 与 OpenID 提供程序一起工作,但我无法获取信息字段。

这是一个示例请求:

openid_url = 'blahblah'
resp = openid.begin(openid_url)
resp.add_extension_arg('sreg','required','email')
resp.add_extension_arg('sreg','optional','fullname,nickname,dob,gender')
redirect_url = response.redirect_url('http://localhost:4567', 'http://localhost:4567/complete')
redirect redirect_url

解析结果字段:

info = response.extension_response('sreg',true)

我可以使用大多数提供商登录,例如 Google、Yahoo、myOpenId,... 但问题是:我无法从他们那里获得电子邮件信息。另外,我无法从 Google 的 openid 获取任何信息。

那么,如何解决这个问题呢?我做错了什么吗?

Im currently using ruby-openid gem to work with OpenID providers within my Sinatra application, but i cannot get information fields.

This is an example request:

openid_url = 'blahblah'
resp = openid.begin(openid_url)
resp.add_extension_arg('sreg','required','email')
resp.add_extension_arg('sreg','optional','fullname,nickname,dob,gender')
redirect_url = response.redirect_url('http://localhost:4567', 'http://localhost:4567/complete')
redirect redirect_url

Parse result fields:

info = response.extension_response('sreg',true)

I can login with most providers like Google, Yahoo, myOpenId, ...
But the problem: i cant get the email information from all of them. Also, i cant get any information from Google`s openid.

So, how to solve this? Am i doing something wrong ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文