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