2013-06-04 3 views
0

J'ai besoin d'un utilisateur de connexion côté serveur par jeton d'accès et d'obtenir leurs informations utilisateur. c'est possible ?
Im regarde dans com.google.appengine.api mais je ne le trouve pas.
Je reçois un jeton d'accès côté client en utilisant google oauth2 et après l'envoi au serveur.obtenir l'utilisateur par l'accès google oauth2 token

merci.

Répondre

0

J'ai trouvé la solution avec l'appel de l'URL de 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; 
} 
Questions connexes