1

我正在运行一个 web 应用程序,它检查用户是否使用 登录,如果是UserService,则向他们显示他们的主页,如果不是,则将他们重定向到登录屏幕。进入页面后,我希望能够AJAX在他们单击某些元素时更新特定部分。现在,我已经REST使用 Cloud Endpoints 在同一个 GAE 项目中编写了一个 API,它可以获取我想要的所有信息,因此本着 DRY 的精神,我宁愿使用自己的 API,也不愿编写新的 servlet 来处理这些请求。

问题是我需要生成一个OAuth令牌才能访问 API。我可以从 Google API JavaScript 客户端库轻松地做到这一点,但是我的用户需要重新验证其余 API,这不仅从用户体验的角度来看很糟糕,而且更重要的是在页面的 javascript 中公开了我的客户端 ID 并通过通过HTTP(非SSL)标头的令牌。

我看到的唯一选择是为每个请求编写一个 servlet 并进行重复工作。但从概念上讲,我已经登录到 Google,所以我应该能够访问 API。一个人通常是怎么做的?我想这一切都错了吗?

4

1 回答 1

2

UserService和 OAuth 是两种不同的身份验证(和授权)机制,您不能将它们结合起来。

如果您确实需要 OAuth 来访问某些 API,那么也可以使用服务器端 OAuth。通过这种方式,您可以访问 API 并UserService一次性替换所有内容。

于 2013-11-03T08:40:46.890 回答