vue如何存储token,vue根据token获取用户信息

  vue如何存储token,vue根据token获取用户信息

  本文主要介绍Vue保持用户登录状态(各种令牌存储方式),通过实例代码详细介绍,有一定参考价值,感兴趣的朋友可以参考一下。

  

目录

  如何设置cookie cookie的缺点:LocalStorage和SessionStorage token local storage和session storage的主要区别:为什么要用Vuex在前端存储令牌?有许多方法可以保持用户登录。你可以通过存储Cookies,Session,Token等信息来保存。无论后台向前端发送哪些信息,我们要做的就是将这些信息存储在本地浏览器中。当浏览器再次发送请求时,它将再次向服务器抛出带有 key= value 的Cookie。服务器通过cookie字段判断用户已经登录,然后根据需求处理用户请求。否则返回400提示用户先登录。之前我也分享过相关文章:Django: Cookie设置和跨域问题处理,Django:与Session一起使用的Cookie,Django:基于令牌的认证。作为前端,也有很多方法来存储这些值。您可以将它们存储在Cookie、LocalStorage、SessionStorage或Vuex状态管理器中。当然,它们的功能也是不同的,比如Vue的区别和用法:LocalStorage和SessionStorage。

  

怎么设置Cookie

  Django可以通过HttpResponse响应对象的set_cookie,设置相应的视图和路由。只要通过浏览器访问路由,浏览器就会自动获取set_cookie值并存储在本地(浏览器运行时一般存在内存中,浏览器关闭时一般存储在硬盘中)。

  

Cookie的缺点:

  1、cookie存储量小;2、存储的cookie数量有限;3.增加网络负担;4.存在安全隐患

  

LocalStorage与SessionStorage存储Token

  比如保存在SessionStorage中,当用户登录时,我们需要将用户名id和令牌保存到session storage中。在Vue中实现同样简单,既可以通过sessionStorage.setItem实现,也可以通过sessionStorage[token]实现。然后(res={

  if(res.data[code]==200){

  localStorage.clear()

  localStorage.setItem(info ,1)

  localStorage[flag]=1

  //localStorage.setItem(flag ,1)

  sessionStorage.clear()

  //session storage[ userid ]=JSON . stringify(RES . data . userinfo . id)

  sessionStorage.setItem(userid ,JSON . stringify(RES . data . userinfo . id))

  session storage[ token ]=JSON . stringify(RES . data . token)

  这个。$message({

  消息:“登录成功”,

  类型:“成功”

  })

  这个。$router.push(/home )

  }否则{

  这个。$message({

  消息:“错误的用户名或密码”,

  类型:“警告”

  })

  }

  })

  这样我们就可以在浏览器的开发者工具的应用中找到Session Storge,我们刚刚得到的值就存储在里面了。至于是否存储LocalStorage和SessionStorage,要看项目需求。

  

LocalStorage与SessionStorage的主要区别:

  除非被主动删除,否则LocalStorage将永久存储在浏览器中。

  SessionStorage只在当前窗口关闭前有效,其存储的数据会在窗口关闭后自动清除。

  

Vuex存储Token

  在存储文件的状态下初始化令牌。因为状态中的数据不支持直接修改,所以我们需要定义方法setToken(设置令牌)和getToken(获取令牌)。然后我们可以介绍这个。登录界面的$store.commit(setToken ),JSON.stringify(res.data.token)),并从后台将令牌存储在Vuex和localStorage中。为什么要存储在localStorage中?页面刷新后,Vuex中的状态不再存在。为了保持当前状态,需要从localStorage中提取状态,然后将值传输到Vuex。

  从“vue”导入Vue

  从“vuex”导入Vuex

  Vue.use(Vuex)

  导出默认的新Vuex。商店({

  状态:{

  令牌: //初始化令牌

  },

  突变:{

  //存储令牌方法

  //将token设置为等于外部传入的值。

  setToken(状态,令牌){

  state.token=令牌

  LocalStorage.token=token //将令牌同步存储到LocalStorage

  },

  },

  getters : {

  //获取令牌方法

  //判断是否有令牌,如果没有重新赋值,则返回状态令牌

  getToken(州){

  如果(!state.token) {

  state . token=local storage . getitem( token )

  }

  返回状态.令牌

  }

  },

  动作:{

  }

  })

  

为什么要使用Vuex

  Vuex是状态管理器,不是存储工具。为什么令牌存储在Vuex中?Vuex中封装的localStorage操作可以直接使用localStorage操作数据,但不能监控数据变化。Vuex是全局存储,可以监控数据状态的变化。当Vuex的值发生变化时,它可以相应地监测数据的变化。

  关于通过Vue(各种令牌存储方法)保持用户登录的这篇文章到此为止。关于通过Vue保持用户登录的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: