1

私の目標は、Google plus SDK を使用して BaaS にログインすることです。BaaS には、tokenId viagoogleSignInAccount.getIdToken()と accessToken が必要です。

GoogleAuthUtil.getToken(activity, accountName, scopes);は減価償却され、accessToken を取得するために使用されました。

GoogleAuthUtil.invalidateToken(activity, token);も減価償却されます。

accessToken を取得して無効化する別の方法は何ですか (無効化は今必要ですか)?

私は認識しており、試しました: GoogleAuthUtil.getToken(Context, Account, String); および GoogleAuthUtil.clearToken(activity, token);

アカウントには最初の部分の許可が必要なようです (したがって、オプションではありません)。account = new Account(googleSignInAccount.getEmail(), "com.google");また、clearがinvalidateと同義であるかどうかもわかりません(ただし、減価償却されたメソッドで動作するようですが、その影響はわかりません)、または使用する他の呼び出し/ APIがあるかどうかもわかりません。

からのように:com.google.android.gms.auth.api.Auth

4

1 に答える 1

2

Google デベロッパー サイトには、GoogleAuthUtil.getToken からの移行に関するページがあります。

https://developers.google.com/identity/sign-in/android/migration-guide

このコードは、廃止された API の使用を非難しなくなりました

    private void loginInBackendless(final GoogleSignInAccount acct) {
    Log.d(TAG, "handleSignInResult: try login to backendless");

    //final MainActivity mainActivity = (MainActivity)this.getActivity();
    //final String accountName = acct.getEmail();
    final String scopes = "oauth2:" + Scopes.PLUS_LOGIN + " " + Scopes.PLUS_ME + " " + Scopes.PROFILE + " " + Scopes.EMAIL;
    final FragmentActivity fragmentActivity = this;
    AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            String token = null;
            try {
                token = GoogleAuthUtil.getToken(fragmentActivity, acct.getAccount(), scopes);
                GoogleAuthUtil.clearToken(fragmentActivity, token);
                handleAccessTokenInBackendless(acct.getIdToken(), token);
            } catch (UserRecoverableAuthException e) {
                startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return token;
        }
    };

    task.execute();
}
于 2016-08-02T11:50:54.280 に答える