Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序引擎中的UserService、OAuth和AJAX_Java_Google App Engine_Oauth 2.0_Google Cloud Endpoints - Fatal编程技术网

Java 应用程序引擎中的UserService、OAuth和AJAX

Java 应用程序引擎中的UserService、OAuth和AJAX,java,google-app-engine,oauth-2.0,google-cloud-endpoints,Java,Google App Engine,Oauth 2.0,Google Cloud Endpoints,我正在运行一个webapp,它检查用户是否使用UserService登录,如果是,则显示其主页,如果不是,则将其重定向到登录屏幕。进入页面后,我希望能够在单击某些元素时使用AJAX更新特定部分。现在,我已经在同一个GAE项目中使用云端点编写了一个RESTAPI,它可以获得我想要的所有信息,因此本着DRY的精神,我宁愿使用自己的API,也不愿编写新的servlet来处理这些请求 问题是我需要生成一个OAuth令牌才能访问API。我可以从Google API JavaScript客户端库轻松地完成这

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

问题是我需要生成一个
OAuth
令牌才能访问API。我可以从Google API JavaScript客户端库轻松地完成这项工作,但是我的用户需要重新验证rest API,这不仅从UX的角度来看是不好的,而且更重要的是在页面的JavaScript中公开我的客户端id,并通过
HTTP
(非
SSL
)头传递令牌


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

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


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

我想说的是,端点确实将这两种服务结合在一起:它使用OAuth对google用户进行身份验证,从而生成一个“user”实例(与您从UserService.getCurrentUser获得的实例相同)他在区分
OAuthService
类和
UserService
类。虽然两者都生成一个
用户
实例,但不能同时用于身份验证。实际上,我只是用
Angular.js
创建了一个纯web客户端,它只调用API而不调用其他任何东西。因此,除了烘焙到
云端点中的身份验证之外,服务器端不需要更多的身份验证。