Аутентификация Google с внутренним сервером требует областей действия

Я следуюэти инструкции (https://developers.google.com/identity/sign-in/android/backend-auth) для получения идентификационного токена для отправки на мой сервер, но когда я установилString scopes = "audience:server:client_id:" + Service.SERVER_CLIENT_ID; (ДаSERVER_CLIENT_ID это не идентификатор клиента Android) Я не могу получить токен и выдает эту ошибку.

E/Login: com.google.android.gms.auth.GoogleAuthException: Unknown

Однако, когда я использую следующую область вместоString scopes = "oauth2:profile email";

Я успешно получил токен, но это не так долго, как я ожидал, и я боюсь, что это может быть неправильно.

Мои вопросы ...

1) Почему неscopes = "audience:server:client_id:" + SERVER_CLIENT_ID; используется в работе гида?

2) Является ли токен, который я получаю от использованияString scopes = "oauth2:profile email"; безопасный для проверки пользователя на бэкэнде?

Код ниже.

@Override
    protected String doInBackground(Void... params) {
        String accountName = Plus.AccountApi.getAccountName(googleApiClient);
        Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
        //String scopes = "oauth2:profile email";
        String scopes = "audience:server:client_id:" + Service.SERVER_CLIENT_ID; // Not the app's client ID.
        Log.d(TAG, "Account Name: " + accountName);
        Log.d(TAG, "Scopes: " + scopes);

        try {
            userIdToken = GoogleAuthUtil.getToken(getApplicationContext(), account, scopes);

            return userIdToken;
        } catch (IOException e) {
            Log.e(TAG, "IOError retrieving ID token.", e);
            return null;
        } catch (UserRecoverableAuthException e) {
            startActivityForResult(e.getIntent(), RC_SIGN_IN);
            return null;
        } catch (GoogleAuthException e) {
            Log.e(TAG, "GoogleAuthError retrieving ID token.", e);
            return null;
        }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос