我正在使用GAE后端开发Android客户端,我正在使用电话帐户进行身份验证。
从GAE检索身份验证cookie后,我可以对服务器进行身份验证调用,但是一旦应用程序关闭,当应用程序重新启动时,我必须再次运行auth进程,请求新的曲奇饼。有没有办法存储该Cookie对象并在首次执行身份验证后检查它,所以每次应用程序启动时我都不必这样做?
答案 0 :(得分:2)
听起来很适合使用SharedPreferences
PreferenceManager.getDefaultSharedPreferences().edit().putString("cookie", myCookie).commit();
String myCookie = PreferenceManager.getDefaultSharedPreferences.getString("cookie", null);
答案 1 :(得分:0)
如果您想利用已实施的提供商的功能,您应该使用AccountManager
:
AccountManager am = AccountManager.get(MyActivity.this);
Account[] aArray = am.getAccountsByType(ACCOUNT_TYPE);
/* choose correct account from the resulting array */
/* ex. Account a = aArray[0]; */
try {
String token = am.blockingGetAuthToken(a, Constants.AUTHTOKEN_TYPE, false);
} catch (OperationCanceledException e1) {
e1.printStackTrace();
} catch (AuthenticatorException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
您应该覆盖帐户身份验证器的getTokenType()方法,以便在密钥AccountManager.KEY_AUTHTOKEN
下的结果包中返回GAE身份验证Cookie。有关详细的身份验证过程,请参阅AccountManager类说明。