Как использовать URL Shortener API Client Library для Java в Android-студии?

Я использую Google+ Sign-In в своем приложении для Android и хочу отправить токен авторизации на свой веб-сервер. Перейдите по ссылке [ https://developers.google.com/identity/sign-in/android/backend-auth][1] и использует следующий код для генерации idToken.

private class GetIdTokenTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
        Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
        String scopes = "audience:server:client_id:" + Constants.SERVER_CLIENT_ID; // Not the app's client ID.
        String idToken = "";
        try {
            idToken = GoogleAuthUtil.getToken(getApplicationContext(), account, scopes);
        } catch (IOException e) {
            Log.e(TAG, "Error retrieving ID token.", e);
        } catch (GoogleAuthException e) {
            Log.e(TAG, "Error retrieving ID token.", e);
        }
        return idToken;
    }

    @Override
    protected void onPostExecute(String result) {
        authToken=result;
        Log.i(TAG, "ID token: " + result);

    }

}

и я получаю идентификатор токена, как это:

eyJhbGciOiJSUzI1NiIsImtpZCI6IxxxxxNThkODVjODU3hiMjI3MjBhM2E1NWxxxxzM0NDcifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTEyMzA2OTkwMjA1NDYyMjkzMDExIiwiYXpwIjoiNDU5NTM4MTI1OTIzLXUzNTEzNGZ0aTZyOWJnNGM4MDFjZW82MzVhNWVoNTZzLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiZW1haWwiOiJsZWppbmtyQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdWQiOiI0NTk1MzgxMjU5MjMtNDZlN3Q3YzNhbmQ3M2VqcThyZWZvZTFzYTIzdm9wOHEuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJpYXQiOjE0MzI2MzI5ODUsImV4cCI6MTQzMjYzNjU4NX0.vCT8lanz5Pa2_m_AQ4tZHaME_y_ffa5zqA5_O3u7ZhuOQTmK8xXUh7M-Q_R67KosGPX-ikr_7Tz57OiXNIyKtNBOFKssssxxE0v7wEJvFhVgLSpbuD

это настоящий формат idToken?

но мой токен авторизации внутреннего сервера нуждается в таком формате (некоторые другие люди делают бэкэнд)

ya29.QwGqNA9LsssggddjKZxxRD74HT_viU0wHxoDieWbsIJG3R0xvW3bDij4jzxxxxxP6wPSi7w1bysA

и бэкэнд-кодеры предлагают мне использовать что-то вроде urlshortener и userinfo.email, чтобы получить токен такого типа. Как я могу получить токен такого типа? Я использую GoogleApiClient для подключения с Google Plus и использовать API в следующем коде:

if (mGoogleApiClient == null) {
            mGoogleApiClient = new GoogleApiClient.Builder(this)
                    .addApi(Drive.API)
                    .addScope(Drive.SCOPE_FILE)
                    .addApi(Plus.API)
                    .addScope(new Scope("profile"))
                    .addScope(Drive.SCOPE_APPFOLDER) // required for App Folder sample
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this)
                    .build();
        }

        findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mGoogleApiClient.connect();

            }
        });

Как получить токен аутентификации в сокращенном формате, который я описал выше?

0 ответов

Другие вопросы по тегам