Auth.GoogleSignInApi作为GoogleAuthUtil替代谷歌加登录



我的目标是使用Google plus sdk登录BaaS,BaaS需要通过googleSignInAccount.getIdToken()的tokenId和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是否与invalid同义(似乎适用于折旧方法,但我不知道其影响),或者是否有其他调用/api可供使用。

类似于:com.google.android.gms.auth.api.Auth

谷歌开发者网站有一个关于从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();
}

相关内容

  • 没有找到相关文章

最新更新