GAE端点 - access_token不对用户进行身份验证

时间:2014-09-22 13:57:55

标签: javascript google-app-engine authentication access-token

我尝试使用以下列出的步骤对来自普通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;
&#13;
&#13;

使用来自Web客户端的端点方法(使用gapi client.js)正确检索&#34; tu:&lt;&lt; useremail&gt;&gt;&#34;。

我不知道自己错过了什么。是不是应该在enpoind方法中对access_token进行身份验证?

0 个答案:

没有答案