2013-06-04 3 views
0

액세스 토큰을 사용하여 서버 측에 로그인 사용자가 필요하며 사용자 정보를 얻으십시오. 것이 가능하다 ?
Im은 com.google.appengine.api를보고 있지만 찾지 못했습니다.
클라이언트 측에서 Google oauth2를 사용하여 서버에 전송 한 후 acces 토큰을받습니다.google oauth2 토큰을 통해 사용자를 얻으십시오.

감사합니다.

답변

0

URL을 Google API로 호출하여 해결책을 찾았습니다.

public UserInfo login(String token) { 

    String json = getJsonDataFromUrl("https://www.googleapis.com/oauth2/v2/userinfo?access_token=" + token); 
    UserInfo userInfo = new UserInfo(); 
    Gson gson = new Gson(); 
    try{ 
     userInfo = gson.fromJson(json, UserInfo.class); 
     userInfo.logined = true; 
     HttpSession session = getRequest().getSession(); 
     session.setAttribute("userKey", userInfo.encodedKey); 
    }catch (Exception ex){ 
     log.log(Level.WARNING, ex.getMessage()); 
     throw ex; 
    } 
    return userInfo; 
} 

private String getJsonDataFromUrl(String aurl){ 
    String json = ""; 
    try { 
     URL url = new URL(aurl); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 
     String line; 

     while ((line = reader.readLine()) != null) { 
      json+=line; 
     } 
     reader.close(); 

    } catch (MalformedURLException e) { 
     log.log(Level.SEVERE, e.getMessage()); 
     return null; 
    } catch (IOException e) { 
     log.log(Level.SEVERE, e.getMessage()); 
     return null; 
    } 
    return json; 
} 
관련 문제