【发布时间】:2011-12-21 05:17:20
【问题描述】:
我的应用程序的架构如下:我有一个网络服务(在 GAE 上运行,与这个问题不太相关),并且该服务包含的数据可通过网站以及移动和桌面应用程序提供。
目前,用户通过 Google ClientLogin 对网站进行身份验证,应用程序通过 GAE 的内置 oauth 提供程序进行身份验证/获得授权。 (OAuth 在这里主要用于身份验证,我的应用程序实际上并没有通过 OAuth 使用任何外部数据,除了用户的唯一 ID 和电子邮件地址。)
我想做的是扩大用户可以用来登录的服务数量。由于应用程序的复杂因素,我似乎需要 OAuth。但我无法真正正确地概念化这个流程应该如何进行。
让我们以 Facebook 为例。当移动应用程序通过 Facebook oauth 流程并获取访问令牌时,这还不够 - 因为它是我的服务,而不是应用程序,它实际上需要与 facebook 交谈以检索联系信息和唯一的用户 ID。这让我认为 OAuth 过程需要在我的服务上下文中发生,而不是在移动应用程序中发生。然后,我的服务成为消费者,Facebook 成为 oauth 提供者,并且服务持有 oauth 访问令牌,当用户第一次设置他们的帐户时会发生这种情况。
如果这是正确的方法,那么应用程序的身份验证会在哪里?当用户已经拥有一个帐户并安装了一个新的移动应用程序实例时会发生什么?我想象还要通过 oauth 过程,将凭据与我的服务已存储的数据进行匹配,然后从服务向应用程序发出我自己的“访问令牌”,以授权该应用程序的实例。这似乎令人费解和骇人听闻。
我敢肯定,我不能成为唯一一个实际上“借用”第三方帐户系统以用于具有后端的移动应用程序的人,但我真的不知道该怎么做这是。
我没有看到什么和/或在概念上出现错误?
【问题讨论】:
-
蟋蟀 我觉得我可能错误地提出了这个问题。如果是这样,请告诉我。否则,我会在这里回答我自己的问题......最终。
标签: authentication oauth authorization oauth-2.0