代码之家  ›  专栏  ›  技术社区  ›  inxilpro

php中openid定向的身份/标识符选择

  •  1
  • inxilpro  · 技术社区  · 16 年前

    我试图在php中实现一个支持标识符选择的openid服务器(有些人称之为定向标识,这实际上是标识符选择的一种更具体的情况)。也就是说,用户可以输入一个通用uri作为其openid标识符,登录并选择返回给openid使用者的标识符。

    例如,如果用户输入 MySITecom 作为它们的标识符,在它们登录之后,会提示它们将两个标识符中的一个返回给openid使用者(也许 mysite.com/myusername网站 mysite.com/anon-ad83f38c98b98 )

    此系统的优点是,您可以选择在多个站点中使用单个标识符,或者为单个站点使用唯一标识符。

    无论如何,我还没有找到一个很好的教程来指导如何在php中实现openid规范的这一部分。事实上,大多数搜索都会让我在论坛上,甚至是堆栈溢出上找到未回答的问题。有人知道一个php库可以处理标识符选择或定向标识吗?如果有的话,有没有什么教程可以解释如何设置它?我一直在和一些图书馆打交道,他们没有提到这个或那个,但我还没能让它工作。

    任何帮助都非常感谢。

    2 回复  |  直到 16 年前
        1
  •  1
  •   jmoz    16 年前

    文件是无用的。你看过詹瑞恩图书馆吗?他们有一个我已经成功实现的消费者,还有一个我认为可以实现的服务器代码。看看yadis\xrires和yadis\xri文件,您可能需要对它们的代码进行反向工程—这就是我要做的,以找出消费者。我目前正在研究实现一个服务器,但还没有找到任何有价值的东西。

    http://openidenabled.com/files/php-openid/docs/2.1.3/OpenID/Auth_Yadis_Yadis.html

        2
  •  0
  •   keturn    16 年前

    php-openid v2当然有能力。实际上,添加标识符选择时,与库的交互方式几乎没有变化。当你得到你的 Auth_OpenID_ChecKIDRequest ,您可以查看 idSelect 方法以查看是否是标识符选择的情况。然后将选定的标识传递给 Auth_OpenID_ChecKIDRequest.answer() .

    唯一的另一点是确保您公布规范中术语“op identifier element”的内容 MySIT/COM/ . 如果您已经在为用户标识符提供xrds页面,那么这也可以用同样的方式工作,只需要使用不同类型的url。如果你没有(你只是有基于html的发现 link 元素),您可能希望以myopenid的http头为例。

    推荐文章