为潜在的身份验证端点使用多个服务


Using multiple services for potential authentication endpoints

我正在编写一款安卓应用程序,该应用程序需要人们识别自己的身份。我们认为,最好的做法是不让人们在我们的服务器上注册,因为实际上每个人都在其他地方有一个主要服务的帐户(例如谷歌、推特、脸书、雅虎)。

REST API是围绕CakePHP构建的。这本身并不是我所需要的一个关键点,但问题更多地在于Android应用程序及其与API的通信。本质上,我希望看到的是一个拥有X台设备的用户能够登录到他们已经可以访问的服务

然后,我们的服务器将知道该身份作为该用户的身份。然后,我的应用程序需要一种方法来告诉我们的API"我是来自serviceexample.com的John Doe,这里有证据"。服务器还将接受具有相同身份的新设备,并将其绑定到该用户。

我在这里遇到了一些问题:

  • OpenID似乎是一条路(尽管我不确定Twitter是否支持OpenID)。但是我如何从我的设备上进行OpenID我不需要别人给我指OpenID for Java。这不是我想要的100%的答案网站将重定向到哪里
  • 我的网络服务器和安卓应用程序之间的身份验证部分会是什么样子?我没有登录。我使用的是OpenID。我应该只获取部分/全部OpenID信息并将其传递到Web服务器进行存储,然后再次传递它以检查每个API调用吗

Twitter不仅提供OpenID,而且他们还有一个专门的页面,讨论流是什么以及需要存储什么。谷歌也有类似的登录页面。OpenID登录流(在大多数情况下)是OAuth2。