问题标签 [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 - openid 的数据库方案或策略
存储有关用户 openid 的信息的最佳策略是什么。用户还必须能够使用不同的 openid,但它们必须链接到同一个配置文件。
换句话说,有点像 Stack Overflow 所做的事情。
我该怎么办?
对于到目前为止的数据库,我将 openid_url 和 identity 作为一个字段。用户配置文件的唯一限定符是什么。下次用户决定使用 Yahoo 而不是 google 登录时会发生什么?
我希望我能在这里得到一个明确的答案。
谢谢,理查德
php - Facebook 和 Twitter 支持的 OpenID 样式登录
我希望允许用户使用他们的社交网络帐户注册和登录:
- 推特
- 谷歌
- 雅虎
- 醇
- ETC
OpenID 似乎是一个不错的选择,但 Facebook 或 Twitter 似乎并不支持它,这使得它毫无用处。关于免费(大型网站)选项的任何建议?OAuth 看起来不错,但这不是要求用户每次都进行身份验证吗?我想要一些更自动化的东西,所以他们点击“twitter”,如果他们在 twitter 上登录并且已经获得授权,他们会自动登录到我们的网站上。我可以在我的站点上处理工作,并且没有使用 api 的问题。
谢谢!
php - 如何发现 OpenID IDP,然后在 PHP 中使用 OpenID Provider 进行身份验证
我一直在考虑对我的一个网站实施 OpenID 身份验证,并希望找到最好的解决方案,让用户尽可能轻松地注册/登录。
通过我在谷歌上的长时间搜索,我发现了一些已经详细介绍了这一点的网站;Google 编写的关于联合登录的可用性研究,因此认为它们是非常值得信赖的设计模式,可用于最佳使用场景。
现在在实现这一点时,我发现以这种方式完成的登录几乎没有 PHP 支持;用户只需输入电子邮件地址,所有 OpenID 详细信息都会自动找到。它还应该与 Google Apps 地址兼容。
谷歌提供了一个链接到一个很好的例子http://www.puffypoodles.com/lso2但是虽然它的源代码可以下载,但它是用 Java 编写的,我并不熟悉!
所以我想知道是否有人找到了以这种方式运行的良好 PHP 实现。php-openid 看起来太臃肿了,lightopenid 看起来不错,但是不支持这个功能。
谢谢
php - 使用 OpenID+OAuth (google) 获取访问令牌和密码
我将OAuth 与联合登录(混合协议)一起使用,以允许我的用户使用 openID 登录一次(效果很好),并同时使用 Google 数据 API 进行身份验证。
Zend_GData 库让我很头疼,所以根据这里某人的建议,我切换到LightOpenID。
openID 部分工作得很好,多亏了这个技巧,我能够添加 OAuth 扩展并收到如下响应:
根据文档,openid.oauth.request_token
是一个授权的请求令牌,所以看来我不需要做这个OAuthAuthorizeToken
请求。到目前为止一切都很好,但现在我需要将此请求令牌交换为访问令牌和令牌秘密。
因为我不知道如何生成 OAuth 随机数和签名,所以我为 php 使用了OAuthSimple库。问题是,所需的代码如下所示:
它需要一个oauth_verifier
值,您将通过普通 OAuth 请求与请求令牌一起收到该值。我不确定是否是 OAuthSimple 库在尝试省略它时出错,或者它是否是 Google 的要求,但它不起作用。
所以,有人能发现我在这里做错了什么吗?
php - 使用数组中的数据
在我的 php 页面上,我得到以下输出:
这是通过 php 代码中的以下行生成的:
如何users_name@email_address.com
从该数组中提取文本并将其粘贴到变量中$strEmail;
?
所以当我回显变量时:
echo $strEmail;
它应该在屏幕上输出以下内容:
users_name@email_address.com
php - LightOpenID - 提供者 - 脚本停留在“允许一次”、“始终允许”、“取消”
我在我的机器上的 localhost 虚拟主机上运行了 example-mysql.php LightOpenID 提供程序脚本。我更新了表名和 mysql_connect() 参数以在我的本地机器上工作。我还在用户表中创建了一个用户。
我正在使用 example.php LightOpenID 消费者脚本来测试提供者脚本。一切正常,直到我到达“http://site1”想要访问、允许一次、始终允许、取消。按下任一允许按钮会创建一个新的 allowedsites 行,但页面会再次使用按钮刷新。它会验证我对数据库的登录,否则我会得到“错误的用户/密码”,但永远不会完成该过程并重定向我......
提供者脚本:https ://gist.github.com/1072612 消费者脚本:https ://gist.github.com/1072613
php - LightOpenID - 提供商为发现信息不匹配的标识符发出断言
这是我使用 LightOpenID 提供程序脚本登录 Stack 后遇到的错误。
OpenID 提供者针对发现信息不匹配的标识符发出断言。
提供者脚本:https ://gist.github.com/1072612
我应该注意提供者已将 select_id 设置为 true。如果设置为 false,一切正常。
php - LightOpenID 不返回身份或电子邮件,尽管 URL 显示两者
我正在使用 MVC 模式和 LightOpenID 来获取登录详细信息,但在该行$openid->mode
之后$openid->validate()
变为空header('Location: ' . $openid->authUrl());
这是代码:
有人可以帮助我吗?
非常感谢
玩小子
php - 使用您自己的域获得可靠 OpenID 的提示
我正在尝试使用我的域名作为标识符来构建基于 OpenID 的个人在线身份。我希望能够完成这一切:
- 做
http://alvaro.es/
我的标识符。 - 能够透明地切换供应商。
- 登录任何接受 OpenID 的第三方站点。
- 能够提供个人详细信息(电子邮件、时区、头像...)并提示是否将它们发送到请求它们的站点。
- 在我自己的(PHP 驱动的)站点中接受 OpenID,无需购买 SSL 托管。
我已经阅读了通常的文档,并且一直在评估几个 OpenID 提供商(Google、Yahoo、myOpenID...,甚至运行我自己的服务器)。事实上,我使用 OpenID 已经有一段时间了,并且:
- 提供商提供非常稀缺的文档或根本没有。
- 无论我选择哪个提供商,总会有登录失败的站点(通常没有错误消息)。
- 我对提供者返回的标识符几乎没有控制权(或根本没有控制权)。
- 我仍然无法理解这一切是如何运作的。
我正在寻找一般性建议,但我知道这可能是主观的,所以我会提出一些具体的问题。
到目前为止,我正在尝试将myOpenId作为提供者,将 LightOpenID作为消费者。我的问题是:
我的URL提供了一个 HTTP 标头:
...以及以下 HTML 标记:
这是正确的吗?够了吗?
myOpenID 提供Your Domains,这是一个注册您自己的域名的功能,但我不敢对其进行测试(它需要更改 DNS),并且配置表单建议我必须在
http://openid.alvaro.es/username
和http://username.alvaro.es/
作为标识符之间进行选择(不是http://alvaro.es/
)。但是,没有此功能,Stackoverflow 仍然报告alvaro.es
为我的标识符。我需要使用它吗?在实现 LightOpenID 时,我将本地用户与
$openid->identity
(对象$openid
的实例在哪里)进行匹配LightOpenID
。此属性似乎是用户提供的 URL。这是正确的吗?是否有比我选择的更充足的提供者或消费者库?
openid - 如何使用 Yii 和 OpenID 登录用户
我已将simpleopenidselector和lightopenid添加到我的 Yii Web 应用程序中,它确实对用户进行了身份验证,并返回了一个带有 openid 数据的 url。下一步是使用来自 OpenID 提供者的数据在 Yii 中创建一个新的身份来登录用户。Yii 是怎么做到的?
另外,我认为我需要创建一个 openid 表来存储 openid 并且还需要将用户添加到我的用户表中。如果用户已经有一个帐户,则将 openid 添加到他们的用户帐户以防止多个帐户。
有人用 Yii 实现了这一切吗?如果是这样,我会对它是如何完成的非常感兴趣。