当前位置:  开发笔记 > 编程语言 > 正文

OpenID身份验证和API访问

如何解决《OpenID身份验证和API访问》经验,为你挑选了1个好方法。

OpenID身份验证本质上是基于浏览器的.如果我想允许OpenID用户对API进行身份验证以便在备用客户端中使用,那么是否有可接受的最佳实践?

因此,如果用户尝试使用他们的OpenID登录到iPhone应用程序,那么它将如何工作?我唯一可以考虑为它们生成某种类型的API令牌,并让用户手动在某处输入它.这种方法不方便用户使用.

这就像Basecamp这样的网站的工作方式,但它对我来说仍然很笨拙.



1> Andrew Arnot..:

您看到的问题不是OpenID独有的.任何无密码身份验证方案都可能出现此问题.OAuth(http://oauth.net/)是一个开放标准的解决方案,很快就在许多网站上获得了关注.它是完全独立的用户如何进行身份验证,所以他们的OpenID提供者并没有需要支持,甚至要知道,你的网站(以下简称"服务提供商" OAuth术语)的使用OAuth.您的API客户端可以是基于Web的,甚至是本地应用程序!

过程将是这样的:

角色:

用户:在您的网站上拥有帐户的人.

服务提供商:您的网站,其中包含一个需要一些凭据才能访问的编程API.

使用者:需要访问服务提供者API的客户端,无论是Web还是本地应用程序.

流:

    用户是消费者.他表示他想要在服务提供商处访问数据.

    用户被重定向(如果消费者是网站)或者弹出浏览器(如果消费者是本地应用程序)并且用户看到服务提供商网站.

    用户已经通过持久性cookie登录到服务提供者,或者用户必须首先登录服务提供者,但是已完成(在您的情况下为OpenID).

    然后服务提供商询问用户:"消费者(某些消费者)想要访问您的数据(或我们的API,或其他什么).您要授权吗?(是/否)

    用户确认,浏览器窗口关闭或重定向回消费者站点.

    通过一些OAuth协议魔术,消费者现在拥有一个秘密凭证,可用于访问您的API并访问您刚刚授权的任何用户私人信息.

显然我不能在这里包含整个OAuth规范,但你可以从上面看到这可以解决你的问题.存在OAuth库以便于添加对它的支持.

如果您碰巧使用ASP.NET,我建议http://dotnetopenid.googlecode.com/,因为它最近添加了OAuth支持(v3.0 beta 1).

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有