我想开发一个可以从 android 应用程序访问的 REST API,但我需要授权客户端应用程序的用户。一个简单的解决方案是要求用户注册我的服务,然后使用该用户名/密码成功调用 REST API。但是,我更愿意坚持使用最先进的技术,这些技术似乎结合了注册的便利性和更好的安全性。因此,我决定与 Google OpenID 或 OAuth 2.0 集成以进行用户身份验证和授权。我知道这两个术语的区别和相应的技术,但我也发现使用 OAuth 2.0 的身份验证包括授权步骤。
在发布到这里之前,我做了很多研究,这让我找到了一个非标准的解决方案,我将在这里向您介绍。关于我的案例的一些背景知识:Rest API 将提供一些特定于应用程序的数据,这些数据可供移动应用程序用户使用,但应用程序的用户需要被唯一标识并被限制为一定数量的调用。
使用与 Android 应用程序用户关联的 Google 帐户似乎是与身份验证机制轻松集成的最佳选择。但是,客户端不会访问 Google API,而是访问我们自己的 REST API,而 REST API 不需要对 Google API 进行任何调用。但是使用Android SDK的AccountManager,我注意到我可以使用链接的google帐户的oauth access_token并将其发送到REST API,最后使用TokenInfo验证API来检查令牌的有效性。这样,我可以重用 Google 帐户的身份验证来授权和验证对我的 REST API 的访问。
如果这听起来不标准,或者您认为它在某种程度上违反了 OAuth 2.0 协议的规则/目的,您能否指导我正确使用该协议来满足我使用 Google 身份验证在我的 REST API 上对用户进行身份验证的要求?