【发布时间】:2014-12-08 06:23:27
【问题描述】:
我正在使用 Jersey 客户端调用 Google oauth for token,如下所示。
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource webResource = client.resource(UriBuilder.fromUri("https://accounts.google.com/o/oauth2/token").build());
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("code", request.getParameter("code"));
formData.add("client_id", Global.GOOGLE_CLIENT_ID);
formData.add("redirect_uri", Global.GOOGLE_REDIRECT_URL);
formData.add("client_secret", Global.GOOGLE_SECRET);
formData.add("grant_type", "authorization_code");
ClientResponse response1 = webResource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData);
System.out.println(response1.getEntity(String.class));
System.out.println(response1.getClass().getName());
我得到回应
{ "access_token" : "ya29.nQCXFIhTs8s-SQKON6NjPv7wkBcJxlasdlkjsdsklsGuzMMqyDz3XpkNLT",
“token_type”:“Bearer”,“expires_in”:3599,“id_token”: “eyJhbGciOiJSUzI1NiIsImtpZCI6IjdkZGQwOGEwM2IyNWQwZjVhMDllMjNiMmJlMTBkZDIyODQyYTg1NjkifQ.eyJpc3MiOiJhY2NvdW50csdlksjdsdkljdslkjdsdslkjdjsdkljjsldkjsdj987230iOiJwcmVtMXByZUBnbWFpbC5jb20iLCJhdF9oYXNoIjoiMmt2RlZ1RUpTMGp4UWlIUDgtckVuZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdWQiOiI1OTQ5NTUyODE4ODYtYnFyMGRibWRyYWJxYW9ubWhlaXFrMHNrZGRmNWFsazUuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJpYXQiOjE0MTMyMTQ4ODIsImV4cCI6MTQxMzIxODc4Mn0.pc2Snmb4pRF_TqylBuEpz0oBoWZsIq-_r_sqLS06E6DJKgSawWCg_3vqtI72GvWno0J8UghZka6rpaoAFo5RZlxNxLDs4GV5rZqdodNgbKjEO-5MrpGZWUOM7SNoYooASesmTtbamDoCf6G74MSKW5XKaVwdvFEUsSBz5NuavNU”} P>
如何从响应中获取 id_token 并获取响应中的实际值。
【问题讨论】: