首页 文章

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

提问于
浏览
5

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

请验证以下会话管理方案:

Native (Android/iOS) application

  • 使用会话Cookie:会话Cookie存储在DefaultHttpClient对象中 . 不是为每个请求创建一个新的DefaultHttpClient(iOS中的AFNetworking),而是保留它并重复使用它,并保持会话cookie .

Hybrid (JET, ionic, Angular, Cordova) application

  • 使用localStorage在成功登录后存储用户信息 . 注销时清除localStorage .

Web-HTML5 apps

  • HTML5中的Attribute-SessionStorage:网站可以使用它们将数据添加到会话存储中,并且可以访问在该窗口中打开的同一站点的任何页面即会话,只要您关闭窗口,会话就会迷路了 .

感谢致敬,

罗希特

1 回答

  • 1

    管理会话的旧方式是通过cookie .

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

    这种方法有什么问题?

    固有地,它不可扩展 .

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

    什么是存储会话的新方法

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

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

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

    Native(Android / iOS)应用程序

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

    所有申请 .

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

    • Web应用程序 - 本地存储

    • 混合应用程序移动 - 本地存储

    • 本机应用程序 - sqlite

    在这里阅读cookie authorization vs token authorization之间的区别 .

    保密信息

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

相关问题