我尝试使用以下列出的步骤对来自普通javascript环境(无gapi客户端)的GAE endpoind方法进行身份验证调用: Google Accounts Authentication and Authorization
该代码类似于googleAuth.js文件中的实现:Google Auth (OAuth 2.0) for Titanium。
代码返回一个access_token,它有效地从googleapis获取用户信息,使用:
curl https://www.googleapis.com/plus/v1/people/me?access_token=ya29.iA...

但是,当我尝试从配置了用于获取access_token的相同设置(client_id,client_secret)的端点访问方法时,我接收到空用户参数。授权标头在方法中正确接收:" Bearer ya29.iA ..."。
@ApiMethod(name = "listGreetingsAuth", path = "listGreetingsAuth")
public ArrayList<Greeting> listGreetingAuth(HttpServletRequest request, User user) throws OAuthRequestException {
String text = null;
if (user == null) {
UserService userService = UserServiceFactory.getUserService();
User user2 = userService.getCurrentUser();
if (user2 != null){
text = "cu:" + user2.getEmail();
}
else {
//throw new OAuthRequestException("Please authenticate!");
text = "Not authenticated: -" + request.getHeader("Authorization");
}
}
else {
text = "tu:" + user.getEmail();
}
...
&#13;
使用来自Web客户端的端点方法(使用gapi client.js)正确检索&#34; tu:&lt;&lt; useremail&gt;&gt;&#34;。
我不知道自己错过了什么。是不是应该在enpoind方法中对access_token进行身份验证?