GAE使用通过gapi.auth.authorize

时间:2015-06-03 18:38:31

标签: google-app-engine google-oauth google-cloud-endpoints

我有一个Google Cloud Endpoint,我可以通过JavaScript和Google JavaScript客户端库从HTML页面访问。

我使用标准

对OAuth2.0进行身份验证
gapi.auth.authorize({client_id: CLIENT_ID, scope: SCOPES, immediate: mode}, callback);

一切正常,我能够从/向基础数据存储读取/写入数据。

在同一个AppEngine项目中,我有一个servlet,它根据数据存储区中的数据生成PDF。

我希望能够使用通过api.auth.authorize()方法验证的同一用户从我的HTML页面调用此Servlet。

在servlet中,通过

获取用户
UserService userService = UserServiceFactory.getUserService();

并在数据存储区中查询该用户的数据,然后生成显示此数据的PDF文件。

我不知道如何使用OAuth认证用户的凭据调用此url(servlet)。

你可以帮帮我吗? 提前谢谢!

请注意,几个月前也提出了同样的问题,但没有“完整”答案:GAE User API with OAuth2

1 个答案:

答案 0 :(得分:0)

你应该研究bucket/object ACLs。当您的API端点获取User对象时,它可以使用the user's email在生成的PDF上设置ACL。这样,您只需使用其URL即可将PDF文件提供给用户。您还可以使用端点API调用来检查用户是否确实被认证为允许访问所请求的PDF的人(已存储数据存储条目,可能与对象并行),并生成signed URL一次这是确认的。