在Android中存储Google AppEngine Cookie

时间:2011-06-27 19:31:26

标签: android google-app-engine authentication cookies local-storage

我正在使用GAE后端开发Android客户端,我正在使用电话帐户进行身份验证。

从GAE检索身份验证cookie后,我可以对服务器进行身份验证调用,但是一旦应用程序关闭,当应用程序重新启动时,我必须再次运行auth进程,请求新的曲奇饼。有没有办法存储该Cookie对象并在首次执行身份验证后检查它,所以每次应用程序启动时我都不必这样做?

2 个答案:

答案 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类说明。