我的目标是使用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();
}