1. Google sign-In 流程如下 :
參考: https://developers.google.com/identity/sign-in/android/backend-auth
流程說明:
1.1 Google sign in 之後, 會得到Google id token
1.2 Google id token是google id 動態加密後的結果
1.3 要解密得到google id , 需要安裝google Library,以及加上一些程式(下面會提到)
1.4 取得google id之後,就是我們自己的登入流程
2. Google Library :
在pom.xml增加以下的設定:3. Server side sample :
com.google.api-client
google-api-client
1.24.1
com.google.api-client
google-api-client-gson
1.25.0
@RestController public class GoogleSignInController { private static final String CLIENT_ID = "xxxxxx-xxxxxx.apps.googleusercontent.com"; @RequestMapping(value = "/googlesignin" ,method = RequestMethod.POST) public String googleSignIn(@RequestParam(value="idToken")String idTokenString){ String result = "Invalid ID token."; JsonFactory jsonFactory = new GsonFactory(); NetHttpTransport transport = new NetHttpTransport(); GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory) .setAudience(Collections.singletonList(CLIENT_ID)) .build(); // (Receive idTokenString by HTTPS POST) GoogleIdToken idToken = null; try { idToken = verifier.verify(idTokenString); } catch (GeneralSecurityException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (idToken != null) { GoogleIdToken.Payload payload = idToken.getPayload(); // Print user identifier String googleUserId = payload.getSubject(); System.out.println("Google User ID: " + googleUserId); // todo : Use googleUserId 到資料庫查詢 member profile // ... } return result; } |
沒有留言:
發佈留言