我有一个具有简单REST API的产品,因此该产品的用户可以直接与产品的功能集成,而无需使用我的web用户界面。
最近,我从不同的第三方获得了将他们的桌面客户端与API集成的兴趣,以允许我的产品的用户使用该第三方应用程序访问他们的数据。
我已经看到,希望使用Twitter的应用程序使用Twitter托管的登录页面进行身份验证,该登录页面授予特定应用程序访问该用户数据的权限。单击“允许”或“拒绝”按钮,身份验证过程就完成了。据我所知,Facebook使用的是同样的机制。
根据进一步的研究,这似乎是OAuth的行动,看到我的应用程序接口是基于.Net的,我想我应该使用DotNetOpenAuth并提供类似的机制。不幸的是,这些示例文档很少(如果有的话),我在网上找到的唯一教程似乎集中在帮助您为您的用户提供登录机制,以便他们可以使用第三方提供商登录到您的网站。
我真正想做的是让REST API处理web应用程序的所有核心身份验证和业务逻辑,并让web应用程序本质上是另一个仅通过OAuth使用API的应用程序。用户可以直接使用用户名和密码在网站上进行身份验证,也可以通过MyOpenID或Facebook等第三方提供商进行身份验证,然后网站将以某种方式使用返回的令牌来针对REST API进行身份验证。
基本上看起来我需要我的应用程序接口来以某种方式托管OAuth服务,但也需要让用户使用第三方OAuth服务。我不禁想,我对OAuth的理解还不够充分,不能决定我是不是把事情搞得过于复杂了,或者我想做的事情是好是坏。
有人能至少给我一个大概的概述吗?我需要采取哪些步骤,或者我应该看些什么才能做到这一点?或者给我指点一些教程?或者抨击我的提议,告诉我我(在架构上)做的都是错的?
https://stackoverflow.com/questions/4574868
复制相似问题