Как получить JWT от входа в Google - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь создать проект для android. Мне нужно получить jwt для пользователя, чтобы аутентифицировать его на моем сервере приложений, код ниже (от https://developers.google.com/identity/sign-in/android/sign-in):

gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.oauth_client_id))
                .requestEmail()
                .build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);

        if(null == account){
            Intent signInIntent = mGoogleSignInClient.getSignInIntent();
            startActivityForResult(signInIntent, RC_SIGN_IN);
        }
........
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
            case RC_SIGN_IN:

                // The Task returned from this call is always completed, no need to attach
                // a listener.
                Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
                handleSignInResult(task);

.....
    private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);

            if(null == account){
                Log.d(TAG,"Account is not found");
            }else{
                Log.d(TAG,String.format("Account is: [%s]",account));
            }
            // Signed in successfully, show authenticated UI.
//            updateUI(account);
        } catch (ApiException e) {
            // The ApiException status code indicates the detailed failure reason.
            // Please refer to the GoogleSignInStatusCodes class reference for more information.
            Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
        }
    }

Я создал ключ API в https://console.developers.google.com/apis/credentials для приложения Oauth2 Android с отпечатком SHA1 из моего ключа отладки в Android Studio и установите его в

.requestIdToken(getString(R.string.oauth_client_id))

Когда я запускаю приложение, я вижу вход в систему, выберите учетную запись, но в

GoogleSignInAccount account = completedTask.getResult(ApiException.class);

У меня есть исключение с кодом 10 или 12502

Как получить простое приложение JWT в Android для идентификации клиента на моем сервере? Мне нужно просто проверить подпись JWT на сервере, это простой поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...