我正在尝试为我正在创建的API使用OAuth2,但可能需要对流程的工作方式进行一些解释。我也发现了类似的问题(例如:使用OAuth保护REST,同时仍然允许通过第三方OAuth提供程序进行身份验证(使用DotNetOpenAuth)),但它们并没有清楚地说明关于第三方登录的问题。
我不希望使用OpenID (无论如何),特别是当委托身份验证工作得很好的时候。它看起来过于复杂,并且没有很多支持良好的库。(我使用PHP + Laravel 4)
这个问题被分成4个实体:
我想我已经知道了当用户在我的auth服务器上创建一个帐户并使用该帐户登录时的流程:
我还没有测试工作流,但这似乎是可行的。然而,事实证明,第三方登录更加困难。到目前为止,这就是我所得到的:
这可能有效,但感觉非常复杂。肯定有办法跳过这些步骤吗?我对第8-10步特别感兴趣。据我所知,用户根本不必使用第三方登录与我的Auth Server交互。问题是如何最好地将一个成功的id_token (或其他什么)从Google/Facebook/LinkedIn连接到my上的“帐户”资源。
现在,我并不担心任何其他客户端连接到API,但这是将来某个时候会发生的事情。
发布于 2014-10-28 12:56:28
“据我所知,用户根本不必使用第三方登录与我的Auth Server交互。”这只是部分事实。理论上,您可以使用第三方登录的令牌作为自己的令牌。因此,正常的资源请求是:
这样做的缺点是,每次发出请求时,API服务器都必须与第三方服务器对话(不管是否需要来自它们的数据)。相反,当您生成自己的令牌时,您有更多的控制,并且验证请求更简单。
不过,我还是坚持你的工作流程。我曾经做过类似的事情,我的脚步也差不多。当“数”步骤时,你也必须考虑,对于第2-4步,你基本上不需要做任何事情,因为谷歌、Facebook和其他公司已经做得很好了;)
发布于 2016-02-09 12:54:44
对你问题的迟交。
找到解释使用OAuth2:OAuth2分8步的资源
https://stackoverflow.com/questions/17854156
复制相似问题