0

我有一个网络服务,它充当智能手机应用程序的后端。

我希望能够尽可能轻松地对用户进行身份验证,但即使我认为我理解了 OAuth,我也必须承认这里和那里都有一些缺失的部分。

验证:

假设用户有一部 Android 手机。他可能已经通过 Google 身份验证,如果我可以将此身份验证扩展到我的网络服务,那就太好了。Android 具有 OAuth 支持,因此用户打开他的应用程序,授予使用他的谷歌帐户的权限,并且应用程序对他的网络服务进行身份验证。

网络服务

由于该服务应该接受来自各种设备的用户,它不应该是谷歌特定的。应该可以注册一个帐户并从任何设备登录。我不确定是否可以单独使用 OAuth 注册一个新帐户,或者您是否需要先进行其他类型的身份验证 - 例如 OpenID。

通用 Web 服务的流程如何?用于注册用户并授予他访问 API 的通用 API?

此外 - 我不想控制连接到此服务的设备。我可以看到 OAuth 需要一个 consumer_key 和一个 consumer_secret。如果我通过 SSL 运行所有内容 - 消费者秘密仍然是秘密还是我可以只使用一些虚拟值?从而避免创建一个人们可以获得consumer_secret的设备注册系统?

4

1 回答 1

0

对于您的情况,如果您想使用 Google/Facebook 等作为身份验证提供者,您将需要使用 Oauth2 的“授权码”流程。在这种情况下,您以开发者身份在 Google/FB 注册并获得使用其 API 的客户端 ID 和密码。

然后,您获得使用 Google/Facebook 登录按钮和代码,您将使用它来触发“webview”或嵌入式浏览器,用户将被带到 google/facebook 并要求提供他的登录凭据。

成功后,授权代码将发送到您在 Google/Facebook 注册为开发人员时提供的重定向 URL。您将需要捕获此授权码,然后再次调用相关 API 以获取访问令牌,然后您可以使用该令牌获取用户的详细信息以在第一次注册他或如果他之前已经通过此方法注册他则对其进行身份验证.

于 2013-07-17T08:30:02.380 回答