问题标签 [lightopenid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 在 Localhost 中测试 LightOpenID
我正在使用 LightOpenID 在我的 PHP Web 应用程序中启用 Google 身份验证。
但是,当我在本地服务器上进行相同测试时,出现以下错误
这在我的远程服务器上运行良好。我将在我的应用程序的每个页面中使用 LightOpenID 来检查用户是否已登录。我尝试将“localhost”作为域名但得到相同的错误。
我在我的 wamp 服务器上启用了 curl,但是当启用 curl 时,带有 LightOpenID 的页面不会运行。
lightopenid - 如何使用 LightOpenID php 类为 google 和 yahoo 获取用户照片
我正在使用 LightOpenID php 类,即 openid.php 类。我想获取用户照片。但它不会返回有关用户照片的信息。请帮助我,我必须获取用户帐户照片。
谢谢,
php - 使用openid light“找不到服务器”
突然间,我使用 Light Open ID 收到此错误消息。
致命错误:未捕获的异常“ErrorException”,消息“未找到服务器!” 在 /home/a3422801/public_html/LoginAssignment/php/openid.php:463 堆栈跟踪:#0 /home/a3422801/public_html/LoginAssignment/php/openid.php(595): LightOpenID->discover() #1 /home /a3422801/public_html/LoginAssignment/index.php(9): LightOpenID->authUrl() #2 {main} 在 /home/a3422801/public_html/LoginAssignment/php/openid.php 第 463 行抛出
...以及相关代码的小片段openid.php
:
我不知道问题是什么 - 这是最近的问题。有谁知道 OpenID 最近发生了一些变化。我很乐意提供更多所需的代码。一般来说,我是登录和 PHP 的新手,所以如果这非常模糊,我深表歉意。
如果这有任何影响,则此 google 登录名与 FB 登录名相结合 - 但就像我说的那样,它运行正常。
php - 使用 LightOpenID 获取 Google 通讯录?
我目前正在使用 LightOpenID 允许用户登录我的网站,在那里我可以自动提取他们的用户名和电子邮件地址:
这里我使用参数namePerson/first
、namePerson/last
和contact/email
。
我知道为了获得用户联系人列表,我必须使用提要:
但是,我似乎无法弄清楚我需要为此使用哪些参数?
如果我完全删除参数行,我只会得到一个空数组。
谁能帮我弄清楚我需要哪些参数来获取联系人?
这是我拥有的当前代码:
openid - LightOpenID 在默认设置下给出错误,并在有效登录时返回 false
使用LightOpenID类,我试图将 Google 的登录信息与我的网站集成。我正在使用默认代码:
最初,这告诉我我缺少构造方法的参数 1,迫使我将该new LightOpenID
方法称为new LightOpenID($host)
. 但是由于我已经更改了它并尝试登录,所以当我恢复代码时它没有给出那个错误只是去抓住错误......
无论如何,撇开这一点不谈,在我添加主机后,我被带到了谷歌页面,它询问我是否想用我的谷歌帐户登录该网站。我按下了登录按钮,然后被收回,却被告知我没有登录。
我已经登录了谷歌,所以谷歌页面没有要求我登录,只是为了验证我想使用我的谷歌帐户登录我自己的网站。有没有人看到它没有说我已登录的原因?
提前致谢。
php - lightopenid中的requeststreams查询URL两次,第一次成功(is_valid:true),第二次返回失败
我已经在本地测试机器(Windows 和 IIS)和远程服务器上实现了登录代码。在 IIS 中,它“工作”,采用 request_curl 路线。在服务器上,它采用 request_streams 路由,但失败了。
通过在代码中插入大量的跟踪消息,我发现它实际上成功了,然后失败了。就是这样:
在 request_streams 中,语句
返回“is_valid:true...”。不幸的是,代码继续处理响应标头,然后执行与上述相同的语句,这次返回“is_valid:false ...”。
由于我不确定 request_streams 在这一点上真正想要做什么,我不愿意简单地删除问题陈述并返回 $data。
谁能解释一下代码应该在这里做什么?代码是否需要修复,或者我可能已经做了一些事情以某种方式把它搞砸了?
php - 大学 Google 托管电子邮件的 lightopenID
我目前正在尝试为大学的小型网站实施 openID。我对此很陌生,并跟进了相关文章。我已经下载了 lightopenId 并将文件夹上传到我的网络服务器。我的学校有谷歌托管他们的电子邮件服务,所以典型的电子邮件地址是:像这样studentlastname@myuniversity.edu
。我们可以通过mail.google.com
或谷歌专门为我们的登录设计的自定义网页登录mail.google.com/a/oakland.edu/
。
$openid->identity = 'https://www.google.com/accounts/o8/id';
我可以将用户定向到自定义大学谷歌托管页面进行身份验证,而不是将用户重定向到一般用户?
给我错误:
未找到 OpenID 服务器
http://mail.google.com/a/oakland.edu/accounts/o8/id
openid.php:
php - OpenID登录后获取数据
我正在使用 OpenID 库 LightOpenID 让用户登录到他们最喜欢的提供商并将一些信息传递给我的系统。
使用 LightOpenID,这看起来像:
通过设置该required
属性,我可以向 OpenID 提供商(例如 Google)询问一些用户详细信息。如果我的研究是正确的,这就是所谓的“属性交换”。
现在,我遇到了一些问题(为了简短起见):
1.只有几个供应商列出了他们支持的属性。我想我在这里遗漏了一些东西,认为提供者列出这些属性是显而易见的。有没有什么方法可以通过协议“发现”这些属性?
2.这是我面临的主要问题。基本上,我请求的信息(属性)在用户成功登录并批准后传递到我的服务器。这很好而且很正常——除非我的系统这样做,否则不会永久存储这些数据。然而,问题是我需要在用户登录后的某个时间获取这些数据。
如果我必须用 Facebook 来做这件事,它会使用$fb->api('/me');
. 有趣的是,如果我在用户登录时将用户重定向到登录页面,他会使用我需要的信息重定向到我的网站。但是这个过程需要在服务器上完成,我猜对提供者的简单 CURL 请求不会让我得到这些字段。也许原始登录响应参数中的某些内容可能会有所帮助?
TL:博士;用户登录后如何在没有我这边的持久存储的情况下获取属性交换字段?
PS:我使用会话作为持久存储;现在我只是存储 openid 身份 url,但如果需要,我可以添加更多内容。但是,我无法存储 openid 登录响应给出的所有字段(姓名、姓氏、电子邮件等)。
杂项链接/注释
我必须承认 OpenID 中有很多我不完全理解的东西。因此,我将尝试保留一些可能对未来读者有所帮助的笔记或“事实”。
- OpenID 属性列表
- 问题:为什么所有架构 URL 都会导致 404 ( http://schemas.openid.net/ ) 或奇怪的错误 ( http://axschema.org )?
- 附加问题:我认为响应式架构 URL 对规范的实现很重要。如果不是,那么这些 URL 的意义何在?
- 一些常见的 OpenID 提供程序 URL 列表
php - 使用 lightopenid 和信息注册用户一次,然后使用数据库信息登录
我已经实现了一个使用 lightopenid 的 Google 开放 ID 登录注册系统,它运行良好,我想添加一个功能,要求用户只注册一次以允许访问他们的信息,然后我将该信息存储在数据库中以供登录后记.
一旦我得到他们的信息(身份、姓名、电子邮件),我将它们存储在数据库中,以便通过相同的过程将它们记录在后记中,除了跳过用户一次又一次地授予对他们信息的访问权限。
即当用户注册并授予访问该信息的权限时,下次用户不必每次登录都授予访问权限。
为了实现它,我在尝试登录时检查他们在数据库中的身份,如果存在身份,则登录他们而不在 lightopenid 中询问信息,如果身份不是他们,请他们一次将他们的信息存储在数据库中以供以后登录使用。
我可以在数据库中检查他们的身份,但如果身份不是他们的身份,则卡在该部分,然后如何询问他们的信息,因为我没有在登录时请求 lightopenid 中的信息。
存储信息一次的代码。(注册)
检查身份的代码。(登录)
请查看并建议任何可能的方法。
谢谢。
php - 从 lightopenid 全局注销
我已经使用谷歌,雅虎制作了一个openid登录系统,它工作正常,问题是当用户从我的网站注销时,它不会从谷歌,雅虎注销。如何从我的网站以及谷歌、雅虎注销用户的全局注销。
从我的网站上简单session_destroy();
地退出。
为了从谷歌和雅虎注销,我需要在后台触发这些 url。
我可以使用一些表单提交方法将用户带到这些 url,但它会显示相应的 google、yahoo 注销页面,我想将它们注销并向他们显示我的站点注销页面。
请查看并建议任何方法。
谢谢。