我的目标是使用Google登录BaaS,BaaS需要通过googleSignInAccount.getIdToken()和accessToken进行tokenId。
GoogleAuthUtil.getToken(activity, accountName, scopes);被折旧,并被用于获取accessToken。
GoogleAuthUtil.invalidateToken(activity, token);也被贬值。
获得accessToken和无效(现在需要失效)的替代方法是什么?
我知道并尝试过:GoogleAuthUtil.getToken(Context, Account, String);和GoogleAuthUtil.clearToken(activity, token);
帐户似乎需要第一部分的许可(因此不是一个选项) Ex。account = new Account(googleSignInAccount.getEmail(), "com.google");也不知道clear是否是无效的同义词(似乎适用于折旧的方法,但我不知道结果如何),或者是否还有其他的调用/api可供使用。
来自:com.google.android.gms.auth.api.Auth
发布于 2016-08-02 11:50:54
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();
}https://stackoverflow.com/questions/38497317
复制相似问题