会话管理方法在移动本机与混合与Web应用程序中的区别如何?

时间:2016-07-20 06:46:15

标签: html5 session cookies native hybrid-mobile-app

想要讨论有关移动应用程序(本机,混合和Web应用程序)如何管理会话的内幕信息?

请在下面的会话管理方案中进行验证:

原生(Android / iOS)应用

  1. 使用会话Cookie:会话Cookie存储在DefaultHttpClient对象中。不是为每个请求创建一个新的DefaultHttpClient(iOS中的AFNetworking),而是保留它并重复使用它,并保持会话cookie。
  2. 混合(JET,离子,Angular,Cordova)应用

    1. 使用localStorage在成功登录后存储用户信息。注销时清除localStorage。
    2. 网络HTML5应用

      1. HTML5中的Attribute-SessionStorage:网站可以使用它们将数据添加到会话存储中,并且可以访问在该窗口中打开的同一站点的任何页面即会话,并且只要您关闭窗口,会话将会丢失。
      2. 谢谢和问候,

        罗希特

1 个答案:

答案 0 :(得分:1)

管理会话的旧方法是通过cookie。

它是如何工作的?当您的用户在登录屏幕中输入用户名和密码时,您会给他一个会话cookie。用户浏览器和网站中的每次互动都会保留此Cookie。 您需要在服务器端维护此cookie。除了此会话cookie之外,网站还在服务器端会话中保存有关用户的其他信息。

这种方法有什么问题?

本质上,它无法扩展。

如果您的用户号码不高,您可以将此会话Cookie和其他信息保存在一个Web服务器中。但是如果用户数量很高,则需要使用不同的方法解决此问题,例如将此会话信息保存在数据库或会话服务器中。

什么是存储会话的新方式

现代浏览器具有本地存储容量。此本地存储非常适合用户的非关键信息。 Session storage仅限一个会话,当用户关闭浏览器(选项卡)时,它将被删除。 Local storage适用于一个网站,您需要明确删除它,否则用户可能会选择删除它。 在此存储任何非关键信息。如果您的用户从您的网站注销,请将其删除。

混合(JET,离子,Angular,Cordova)应用

Cordova应用程序与Web浏览器没有什么不同。在这里,您确定您的用户只是此计算机(手机)的用户;因此,只使用本地存储。

原生(Android / iOS)应用程序

使用sqlite保存所有会话信息。切勿在本机应用程序中使用cookie授权,这是不必要的,也不可扩展。使用令牌授权。

所有申请。

对于所有应用程序,使用登录屏幕获取授权令牌,例如JWT token并将其存储在您的应用程序中。

  1. 网络应用程序 - 本地存储
  2. 混合应用程序移动 - 本地存储
  3. 原生应用程序 - sqlite
  4. 在此处阅读cookie authorization vs token authorization之间的差异。

    机密信息

    请勿在任何存储空间中存储任何机密信息(密码,信用卡..)。将它们存储在您的数据库中,并根据具体情况向用户显示。