我试图弄清楚如何实现以下身份验证流程:
- 用户访问 Web 应用程序(最有可能使用 Ruby on Rails 编写)并进行身份验证(例如,用户名/密码)。
- 客户端通过基于 Google App Engine(Python、webapp2)构建的 RESTful API 提供的 AJAX 使用数据。
要求:
- 只有在 Web 应用程序 (Rails) 中经过身份验证的用户才能访问 App Engine 上托管的 API。
- 用户可以在 Web 应用程序 (Rails) 中拥有不同的角色,并且 API (App Engine) 需要知道哪些角色与给定用户关联以限制对某些数据的访问。
- 客户端应该能够直接通过 AJAX 调用 API(App Engine),而无需通过 Web 应用程序(Rails)路由所有请求。
我正在寻找有关如何实施此类工作流程的建议。我应该使用 OAuth(或 OAuth2)来访问 API 吗?OAuth 提供程序是否应该存在于 App Engine 上,并且 Web 应用程序 (Rails) 是否应该代表用户向 API 请求令牌?如果是这样,只允许 Web 应用程序(Rails)请求 OAuth 令牌的最佳方式是什么?还是我应该考虑完全不同的策略?
非常感谢任何建议。我也在寻找在上述上下文中实现 OAuth 的库的建议。