Sum*_*tal 5 java authentication cookies android android-cookiemanager
我正在开发一个与服务器通信并有登录屏幕的应用程序。我正在使用 httpconnection 与服务器通信(服务器发回 Json 响应)。我的登录屏幕发送电子邮件和密码,由服务器验证 - 服务器发送 cookie 并期望每个进一步请求的 cookie 都知道用户已登录。
我正在使用 Cookiemanager 和 cookie 处理程序来启用会话,以便用户只需登录一次。
在我的主活动中使用以下 2 个命令(在 Create 方法上)
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
Run Code Online (Sandbox Code Playgroud)
工作模型是我的主要活动向服务器发送一个读取命令,该命令检查用户是否已经登录(期望内部带有 id 的 cookie),并以 json 形式发送状态。如果状态为 0,则移至登录活动,否则移至主屏幕。
在登录活动中,我发送带有用户名和密码的登录命令,服务器发送一个 cookie(发送一个唯一的 id,它会交叉检查任何进一步的请求以验证用户)并返回 json 响应。
登录后,我转到主屏幕并读取状态,因为我在主活动中创建了 CookieManager,所以它会自动随每个 httprequest 发送 cookie。
问题是——当我退出应用程序并在登录后返回时..它再次从主要活动开始并进入登录屏幕而不是主屏幕。我无法弄清楚为什么会这样,以及如何让我的用户登录一次,之后即使他退出应用程序,它也会保留 cookie。
我认为 CookieManager 即使在退出后也会保留 cookie。是否因为我在创建方法中创建 cookie Manager 对象,并且当应用程序退出并重新启动时,它再次创建新对象?或者我的假设是错误的。
默认情况下new CookieManager()会将cookie存储在内存中。
但是,您可以使用不同的构造函数来更改此行为:
CookieManager(CookieStore store, CookiePolicy cookiePolicy)。
至少有几个持久的java.net.CookieStore实现:
| 归档时间: |
|
| 查看次数: |
2334 次 |
| 最近记录: |