OpenID如何在同一OpenID端点上的不同登录之间有所不同
-
15-09-2020 - |
题
我正在尝试基于 smf 用户帐户来实现自己的OpenID端点。我基于phpmyopenid和一些smf授权码的代码。
它到目前为止,它可以很好。我可以使用端点登录/注册任何站点。如果我没有登录SMF,它会要求我的登录,如果SMF登录成功,它会接受它。 但是,似乎在不同的SMF登录之间没有区别。 IE。另一个用户报告说,他试图在网站上使用端点X,使用他的SMF帐户登录并在现场X上登陆我的用户帐户(我在该站点上的OpenID端点注册了OpenID端点)。我猜我必须以某种方式发送SMF登录或以某种方式以某种方式唯一每SMF登录。因为它可能是我所要做的事情,我以为我会在这里问:也许还有更多的东西来解决。
代码(只是php),如果你想看看,就在这里: http://github.com/albertz/smf-openid-server
或者也许只是描述我需要做的事情,以使每个SMF登录都是独一无二的。
另一个项目,我计划是多人C ++游戏中的一个OpenID客户端。 Hoster将有选择只允许可以通过OpenID认证的人员的登录。我也希望只允许某些人登录。基于OpenID登录获取唯一字符串的常用方式是什么?在这种情况下,我想到了像素是生成的东西或世代odicetagcode。什么是获得这样一个字符串的规范方式?
我认为其他问题可能与我的主要问题有关,这就是为什么我也在这里把它放在这里。
另请参见相关问题:是标识符URL唯一?什么是不同的术语?
解决方案
似乎是最终用户的第一个请求我得到了 checkid_setup 。在该响应上,我可以在openid.identity
字段中指定唯一的URL(我在我的问题中称之为唯一的字符串)。
我已经在我的代码中完成了它,它似乎工作。IE。我可以输入常规OpenID端点URL(例如在SourceForge上),它将在我在问题中提出的方式自动扩展它。
要回答我的第二个问题:似乎已验证的标识符URL本身是唯一的,因此可以使用此操作。其中有时可以看起来很神秘(例如,在谷歌的情况下,它只是一些哈希)。因此,这可以在内部使用,不同于不同的用户之间的不同。对于图形表示,我可以显示真正的用户名或我也应该从OpenID身份验证获得的邮件地址。不隶属于 StackOverflow