Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序跟踪登录会话的策略_Java_Android_Session_Login_Httpurlconnection - Fatal编程技术网

Java Android应用程序跟踪登录会话的策略

Java Android应用程序跟踪登录会话的策略,java,android,session,login,httpurlconnection,Java,Android,Session,Login,Httpurlconnection,我有一些PHP脚本,如果登录成功,它会登录并返回一个带有会话ID的JSON数组 在我的应用程序中,我想在首页登录,然后通过正在登录的应用程序继续退出。我创建了一个singleton类,它保存从PHP页面的JSON接收的会话ID(以及一些其他字段)。此单例对象的字段“session_id”将根据用户的操作进行检查 如果用户想要注销,那么会话id将被设置为null,从而注销 我还使用HttpURLConnection库在登录时发布用户名/密码 这是处理这种情况的一种足够体面的方法吗 这个策略可能会奏

我有一些PHP脚本,如果登录成功,它会登录并返回一个带有会话ID的JSON数组

在我的应用程序中,我想在首页登录,然后通过正在登录的应用程序继续退出。我创建了一个singleton类,它保存从PHP页面的JSON接收的会话ID(以及一些其他字段)。此单例对象的字段“session_id”将根据用户的操作进行检查

如果用户想要注销,那么会话id将被设置为null,从而注销

我还使用HttpURLConnection库在登录时发布用户名/密码


这是处理这种情况的一种足够体面的方法吗

这个策略可能会奏效。在我开发的一个应用程序中,我将登录返回的数据存储在android共享首选项中。如果用户注销,我将清除首选项。这允许用户保持登录状态,即使他们关闭了应用程序并稍后返回。我有一个身份验证令牌,检查用户的登录是否仍然有效


您计划如何处理持久登录?会话ID是否过期?您可能需要考虑这些情况,否则一旦用户登录,他们将永远登录,或者只要应用程序处于打开状态。

以下是您应该考虑的一些事情:

  • 对用户进行身份验证并在本地存储会话id后,在每个http请求的头中发送会话id。这样,您就不会在每个请求中发送凭据,而是发送会话id。如果会话的服务器端发生了某些事情,则不允许事务
  • 注销时,不要只删除应用程序(客户端)上的会话id。同时向服务器发送注销,以便可以在服务器端终止会话
  • 如果会话在服务器端被终止,您需要执行以下两项操作之一A)提示用户重新登录。B) 使用存储凭据重新登录、创建新会话id并将其再次存储在您的singleton中

这将比在应用程序端清除会话id保证更多的安全性和功能性。

这也是我使用的方法,但我对其他替代方法也感兴趣。我认为除了初始登录请求之外,他不会发出更多的http请求。他的大部分功能似乎都是本地的+我需要你的帮助。我有一个Web服务,其中有一个方法名为generateToken。这个令牌方法用于该特定用户的会话。这意味着当用户首先登录时,我必须在一段时间内为该用户获取令牌,该令牌是有效的,用户必须在第一个令牌过期后获取另一个令牌。您能帮助我如何使用KSOAP 2存储会话令牌(即基于Cookie的令牌)吗