当我在我的应用程序中登录我的帐户时,我在我的SharedPreferences中保存了一个身份验证令牌,如下所示:
PreferenceUtils.setAuthToken(LoginActivity.this, authToken);
Run Code Online (Sandbox Code Playgroud)
这是我的PreferenceUtils班级:
public class PreferenceUtils {
public static SharedPreferences getSharedPreferences(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static String getAuthToken(Context context) {
SharedPreferences sp = getSharedPreferences(context);
return sp.getString("auth_token", null);
}
public static void setAuthToken(Context context, final String token) {
SharedPreferences sp = getSharedPreferences(context);
sp.edit().putString("auth_token", token).apply();
}
}
Run Code Online (Sandbox Code Playgroud)
当我退出帐户时,我通过调用logOut()我UserUtils班级中的方法删除了身份验证令牌:
public class UserUtils {
public static void logOut(Context context) {
SharedPreferences prefs = PreferenceUtils.getSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.remove("auth_token");
editor.apply();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,即使在退出我的帐户并从SharedPreferences中删除身份验证令牌之后,所有的Retrofit调用仍然以某种方式保存了身份验证令牌,我不知道如何. …