保存用户信息sessionStorage和loaclStorag两者的区别和用法

 先来看下浏览器提供的三种Stroage模式,每个浏览器中都自带,以谷歌浏览器为例,点击屏幕右键->检查->Application

 1.loaclStorag的意思和用法

1.通常程序员用来测试 存储客户端用户的信息对象:测试用

2.同一个浏览器下不同的页面都可以获取到loaclStoragd的值:数据可以共享

3.这些信息将永久保存到浏览器上,只能手动删除loaclStorag的值:数据永久有效,只能手动删除

 1.临时用来存储客户端用户的信息对象 语法 localStroage.setItem( ' token ', ' Bearer xxxxx ')

token为标识符,Bearer xxxxx ;Bearer 后面随机生成的字符长

<body>
  <form action="#" id="from">
    <p>账号</p>
    <input type="text" class="account" value="">
    <p>密码</p>
    <input type="password" class="pad" value="">
    <button onclick="btn()">提交</button>
  </form>

  <script>
    //原生JS获取两个input标签
    var account = document.querySelector('.account');
    var pad = document.querySelector('.pad')

    //测试绑定事件 点击btn()拿到两个input的值
    function btn() {
      console.log(account.value)
      console.log(pad.value)

      // 假设:账号与密码都是123,登录成功后将服务器token保存本地localStroage
      if (account.value == '123' && pad.value == 123) {
        alert('登录成功')

        //模拟服务器生成的token:Bearer是固定语法后面是随机生成的字符串,保存到本地
        localStorage.setItem('token', 'Bearer xxx,,,xxx')
      }
    }
  </script>
</body>

 本地localStorage已保存我们自己模拟的token,在aplication中 Local Stroage中查看 Key和 Value;

Key 和 Value值就是我们在localStorage.setItem('token', 'Bearer xxx,,,xxx')设置的值。

 

 我们现在关闭网页,然后重新打开本网页,不需要验证账号和密码就发现我们保存到localStorage的token值还存在,如果不手动删除,只要你打开本网页 token将永远保存到本地浏览器上Local Storages上

 

2.在同一个浏览器上,现在我们新建一个网页,在网页中放一个按钮,访问和获得本地Local Storage的值; 语法 localStorage( )

 

 

 3:现在我们删除储存在本地的Local Storage,语法localStorage.removeItem(),删除后我们刷新此网页就看不到key 和 value的值了

<script>
    //原生JS获取两个input标签
    var account = document.querySelector('.account');
    var pad = document.querySelector('.pad')

    //测试绑定事件 点击btn()拿到两个input的值
    function btn() {
      console.log(account.value)
      console.log(pad.value)

      // 假设:账号与密码都是123,登录成功后将服务器token保存本地localStroage
      if (account.value == '123' && pad.value == 123) {
        alert('登录成功')

        //模拟服务器生成的token:Bearer是固定语法后面是随机生成的字符串,保存到本地
        localStorage.setItem('token', 'Bearer xxx,,,xxx')
      }
    }

    //绑定新事件 remove() 删除localstorage
    function remove() {
      localStorage.removeItem('token')
    }
  </script>

2. sessionStorage的意思和用法

1.session英语意思是某项活动的一段时间,也就是说sessionStorage存储的值和页面生命周期有关,页面关闭后sessionStorage会自动销毁token值,又称为 会话存储

2.同一个浏览器下不同的页面不能获取到sessionStorage的值

3.使用json.stringfy()存储json对象,json.parse()还原json对象

 1.还用之前的网页,把localStorage换成sessionStorage,打开网页查看Session   Storage中的token

 

 token已保存到本地SessionStorage

 

  2.把本网页删除,然后重新打开网页;会发现Session Storage中的token值没有了,由此得出,页面关闭后sessionStorage会自动销毁token值,且打开新网页后无法获取sessionStorage的token值,就算是不把本页面删除,新网页也无法获取sessionStorage的token值,只适用于单页面应用程序

3.sessionStorage能存储json对象格式的数据,需要用JSON.stringify()解析为文本格式,然后用JSON.parse()把字符串解析为对象

 

 

 把sessionStorage下存储的token转化为对象

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cookie、Token和 sessionStoragelocalStorage 都是浏览器中用于存储数据的机制,但它们在用途、生命周期和数据大小等方面有所不同: 1. **Cookie**: - **用途**: Cookie 主要用于跟踪用户身份和设置,比如网站登录状态或用户的首选项。它们通常发送到服务器服务器会回传一个带有特定域限制的标识。 - **生命周期**: 客户端控制,有默认过期时间(一般为1-2周)或由开发者设定的max-age属性。每次页面刷新都会发送给服务器。 - **大小限制**: 早期的限制通常较小,现在最大可达4KB,具体取决于浏览器配置。 - **安全性**: 容易被劫持,因为可以通过浏览器的cookies.txt文件查看。 2. **Token (通常指JWT)**: - **用途**: JWT(JSON Web Token)主要用于跨域身份验证,包含用户信息服务器验证后返回给客户端,客户端在每个请求头中附带此令牌。 - **生命周期**: 可以设置为长或短,可包含自签发到过期的详细信息,也可以通过服务器进行刷新。 - **存储位置**: 常见的是在HTTP头部,不是浏览器存储,但有时前端也会存储为局部存储。 - **安全性**: 加密和签名确保了令牌的安全性,但同样可能因拦截而暴露。 3. **sessionStorage**: - **用途**: 仅在当前会话期间有效,存储的数据是私有的,不会发送到服务器,适用于临时保存用户交互信息。 - **生命周期**: 直到浏览器窗口关闭或刷新页面时失效。 - **数据大小**: 比localStorage大,一般限制在5MB左右,但不同浏览器可能有差异。 - **跨域限制**: 同源策略限制,不能跨域访问。 4. **localStorage**: - **用途**: 存储长期数据,如用户的设置或首选项,生命周期长,直到用户清除浏览器数据。 - **生命周期**: 没有明确的过期日期,除非手动删除或达到存储限制。 - **数据大小**: 较大,通常超过5MB,但同样受浏览器配置影响。 - **跨域限制**: 同样受限于同源策略,且同源情况下才能读取。 相关问题: 1. 如何根据数据的敏感性和使用场景选择合适的存储方式? 2. 当用户关闭浏览器后,sessionStoragelocalStorage的数据处理方式有何不同? 3. 使用Cookie时,如何设置一个自定义过期时间?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值