Это довольно долгий процесс:
Следуйте https://developers.google.com/identity/sign-in/android/ для основного входа в Google Auth.
Для использования авторизации в бэкэнде есть несколько модификаций -
Шаг 1 - Поскольку вы уже нашли файл секретов клиента, используйте секретный идентификатор клиента, чтобы получить serverAuthCode. Нравится -
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestServerAuthCode(clientSecrets.getDetails().getClientId(), true)
.requestEmail()
.build();
Шаг 2 - В методе handleSignInResult
, указанном в ссылке, вы можете получить свой код авторизации, который вы будете отправлять на свой сервер.
account.getServerAuthCode();
Шаг 3 - На вашем сервере вы можете получить токен доступа. Этот accessToken используется для использования почти всех API Google. По сути, получение accessToken означает, что ваш бэкэнд аутентифицирован в Google.
Добавьте файл секретов клиента в свой бэкэнд.
GoogleClientSecrets clientSecrets =
GoogleClientSecrets.load(
JacksonFactory.getDefaultInstance(), new InputStreamReader(getAssets().open(Constants.CLIENT_SECRET_FILE_PATH)));
if(!authCode.isEmpty()) {
GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(
new NetHttpTransport(),
JacksonFactory.getDefaultInstance(),
"https://www.googleapis.com/oauth2/v4/token",
clientSecrets.getDetails().getClientId(),
clientSecrets.getDetails().getClientSecret(),
authCode,
"")
.execute();
accessToken = tokenResponse.getAccessToken();
}
Есть еще несколько шагов, так как authCode может использоваться только один раз, и accessToken истекает через некоторое время, и вам нужно запросить новый с refreshToken. Но это не входит в рамки этого вопроса.