3

我使用 Cloud Endpoints 并执行客户端 oauth 来访问我的后端。这很好用,除了这意味着我只能在整个页面和附加脚本加载并且 oauth 请求完成之后检查点击我的应用程序 URL 的人是否是用户。

我想启用服务器端身份验证,以便我可以为我的登录页面和我的应用程序使用相同的 URL,如果她是用户,则将用户重定向到应用程序,如果不是,则重定向到登录页面。

问题是User Tutorial使用UserService进行身份验证,而 Cloud Endpoints 使用OAuth Service。我不知道如何在我的重定向过滤器中使用 OAuth,因为上面链接到的 OAuth 部分中的所有链接都用于 OAuth 1 并且已弃用

如何在我的重定向过滤器中检查访问的人是否是用户,同时获得一个令牌,如果她是用户,我可以使用该令牌随后调用我的端点?

我正在使用Google Api JS 客户端调用云端点,因此该解决方案将与其最佳集成,使用gapi.auth.setToken(token)检索到的令牌并绕过整个gapi.auth.authorize(params, callback)舞蹈。

4

2 回答 2

4

您可以为登录流程提供自定义 servlet 实现,您将通过提供新流程来获取 oauth-token,然后验证该访问令牌以授予受保护资源的授权。

谷歌在这里提供了很好的参考文档,你可以使用这个示例代码库作为参考。

于 2015-04-10T08:05:27.653 回答
0

您可以将用户 API 用于端点,如果不适合您的需求,则无需使用 OAuth。您只需将类型的参数添加com.google.appengine.api.users.User到您的端点。如此处所述。

例如:

 @ApiMethod(name = "scores.insert")
    public Score insert(Score score, User user) throws OAuthRequestException, IOException {
      //Check if user is null
      //Do your thing

    }
于 2015-04-03T03:05:10.733 回答