Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 同一OpenID端点上的不同登录名之间的OpenID有何不同_Php_C++_Openid_Openid Provider_Simple Machines Forum - Fatal编程技术网

Php 同一OpenID端点上的不同登录名之间的OpenID有何不同

Php 同一OpenID端点上的不同登录名之间的OpenID有何不同,php,c++,openid,openid-provider,simple-machines-forum,Php,C++,Openid,Openid Provider,Simple Machines Forum,我正在尝试基于用户帐户实现自己的OpenID端点。我的代码基于phpMyOpenID和一些SMF授权代码 到目前为止效果还不错。我可以使用端点登录/注册任何站点。如果我没有登录到SMF,它会要求我登录,如果SMF登录成功,它会接受它 然而,不同的SMF登录似乎没有什么不同。也就是说,另一个用户报告说,他试图使用站点X上的端点,使用他的SMF帐户登录,并登录到站点X上的我的用户帐户(我之前在该站点上注册了OpenID端点) 我想我必须以某种方式发送SMF登录名,或者以某种方式使每个SMF登录名都是

我正在尝试基于用户帐户实现自己的OpenID端点。我的代码基于phpMyOpenID和一些SMF授权代码

到目前为止效果还不错。我可以使用端点登录/注册任何站点。如果我没有登录到SMF,它会要求我登录,如果SMF登录成功,它会接受它

然而,不同的SMF登录似乎没有什么不同。也就是说,另一个用户报告说,他试图使用站点X上的端点,使用他的SMF帐户登录,并登录到站点X上的我的用户帐户(我之前在该站点上注册了OpenID端点)

我想我必须以某种方式发送SMF登录名,或者以某种方式使每个SMF登录名都是唯一的。因为我要做的事情可能很琐碎,所以我想我应该在这里问一下——也许还有更多的事情需要解决

如果您想看一下,代码(仅PHP)如下所示:

或者只是描述一下我需要做什么,使每个SMF登录都具有唯一性

我计划的另一个项目是多人C++游戏中的OpenID客户端。主人可以选择只允许通过OpenID进行身份验证的人登录。此外,我想让它成为可能,只允许某些人登录。基于OpenID登录获取唯一字符串的常见方法是什么?在本例中,我想到了类似于

http://{smf openid endpoint}/{smf user}
http://www.google.de/profiles/{google user}
。获取这样一个字符串的标准方法是什么

我想另一个问题可能与我的主要问题有关,这就是为什么我也把它放在这里



另请参见相关问题:

我收到的最终用户的第一个请求似乎是。在该响应中,我可以在
openid.identity
字段中指定一个唯一的URL(我在问题中称之为唯一字符串)

我已经在我的代码中完成了这一点,而且它似乎起到了作用。也就是说,我可以输入通用OpenID端点URL(例如在SourceForge上),它将按照我在问题中建议的方式自动扩展它

回答我的第二个问题:验证标识符URL本身似乎是唯一的,因此可以使用它。因此,这有时看起来很神秘(例如,在谷歌的例子中,它只是一些散列)。因此,这可以在内部用于区分不同的用户。对于图形表示,我可以显示真实的用户名或邮件地址,我也应该从OpenID身份验证中获得这些信息