最近,我收到了来自各种第三方的兴趣,希望将他们的桌面客户端与API集成,以便我的产品用户可以使用第三方应用程序访问其数据。
我看到想要使用Twitter的应用程序会使用由Twitter托管的登录页面进行身份验证,该页面授予特定应用程序访问该用户数据的权限。您点击“允许”或“拒绝”按钮,认证过程就完成了。Facebook使用相同的机制,据我所知。
经过进一步研究,这似乎是OAuth在起作用,考虑到我的API基于.Net,我认为我应该使用DotNetOpenAuth并提供类似的机制。不幸的是,示例文档很少(如果有的话),我能够在网上找到的唯一教程似乎都集中在帮助您为用户提供登录机制,以便他们可以使用第三方提供者登录您的网站。
我真正想做的是让我的REST API处理我的Web应用程序的所有核心身份验证和业务逻辑,并且在幕后,我的Web应用程序本质上只是另一个使用OAuth通过API的应用程序。用户将直接使用用户名和密码或通过MyOpenID或Facebook等第三方提供者在网站上进行身份验证,然后网站将以某种方式使用返回的令牌对REST API进行身份验证。 基本上看起来我需要让我的API以某种方式托管OAuth服务,但也要让用户使用第三方OAuth服务。我不禁想到我对OAuth的掌握还不够,无法确定我是否过于复杂化了事情,或者我正在尝试做的是好事还是坏事。
有人能给我至少一个大致的步骤概述,或者告诉我该看什么来实现这一点吗?或者指导我一些教程?或者猛烈抨击我的提议,告诉我我(在架构上)完全错了?