为什么我们需要 OpenID 中的 Discovery URL
例如 https://www.google.com/accounts/o8/id 和 https://me.yahoo.com 他们向我发送了终点(对于 google,https://www.google.com/accounts/o8/ud 和 https://open.login.yahooapis.com/openid/op/auth 对于雅虎) 所以我的问题是我可以跳过这个我只使用端点吗?
Like https://www.google.com/accounts/o8/id and https://me.yahoo.com they send me the end point (https://www.google.com/accounts/o8/ud for google and https://open.login.yahooapis.com/openid/op/auth for yahoo)
So my question is can I skip this I just use the endpoint?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 OpenID 协议的启动和发现阶段,用户可以传递 URI 或XRI。如果给出了 URI,则必须遵循 YADIS 协议 来查找服务端点。
如果给定的 URL 与端点不同,则该 URL 将成为“声明的标识符”,并且 OpenID 提供商还可以提供“OP 本地标识符”。用户在启动协议时不需要指定端点 url。因此不应跳过此步骤。
作为发现阶段的一部分,还可能会发现各种 OpenID 扩展,这可能对您的应用程序有帮助。
OpenID 协议有很好的文档记录。
但是,没有理由不能缓存发现的结果。虽然您可以编写代码来跳过发现阶段,如果 Yahoo!或者给定 Google 端点 URL,缓存是一种更通用的解决方案,如果可用的扩展发生更改,缓存也不会中断。
For the initiation and discovery phase of the OpenID protocol, a user may pass either a URI or an XRI. If a URI is given then the YADIS protocol must be followed to find the service endpoint.
If the URL given is different to the endpoint then the URL becomes the 'claimed identifier' and the OpenID provider can also provide an 'OP local identifier'. A user does not need to specify an endpoint url when initiating the protocol. Therefore this step should not be skipped.
As part of the discovery phase, various OpenID extensions may also be discovered which may be helpful to your application.
The OpenID protocol is documented pretty well.
However, there is no reason why you can't cache the results of the discovery. Whilst you could write code to skip the discovery phase if the Yahoo! or Google endpoint URL is given, a cache is a more generalised solution that will not break if the extensions available are altered.