首页 > 编程知识 正文

vuecli登录token(vue开发实战)

时间:2023-05-03 05:40:53 阅读:105060 作者:3654

在前端,有很多方法可以保持用户的登录状态。您可以通过存储Cookies、会话、令牌和其他信息来保存它。无论后台发送到前端的是哪一个,我们需要做的就是将这些信息存储在本地浏览器中。当浏览器再次发送请求时,带有' key'=' value '的cookie再次被抛出到服务器,服务器通过Cookie的字段判断用户已经登录。然后根据需求处理用户的请求,否则返回400提示用户先登录,之前我也分享过相关文章:Django战斗006:Cookie设置和跨域问题处理,Django战斗007:Cookie带Session,Django战斗008:基于令牌的认证。作为前端,也有很多方法来存储这些值。您可以将它们存储在Cookie、LocalStorage、SessionStorage或Vuex状态管理器中。当然,它们有不同的功能,比如Vue实战开发020:LocalStorage和SessionStorage的区别和用法。

怎么设置Cookie

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

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

00-1010,如果存储在SessionStorage中,当用户登录时,我们需要将用户名id和令牌存储在sessionStorage中,这在Vue中同样简单,可以通过sessionStorage.setItem或sessionStorage['token']实现。然后(RES=}

if(RES . data[' code ']==200){ 0

localStorage.clear()

localStorage.setItem('info ',1)

localStorage['flag']=1

//localStorage.setItem('标志',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({ 0

消息: '登录成功',

键入:“成功”

})

这个。$router.push('/home ')

}else{

这个。$ message({ 0

消息: '错误用户名或密码',

键入:“警告”

})

}

})

这样,我们可以在浏览器开发工具的应用程序中找到会话存储视图,它存储了我们刚刚获得的值。至于是否存储LocalStorage和SessionStorage,就看项目需求了。

Cookie的缺点:

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

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

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

从“vue”导入Vue

从“vuex”导入Vuex

Vue.use(Vuex)

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

状态: {

令牌:'' //初始化令牌

},

突变: {

//存储令牌方法

//将令牌设置为等于从外部传入的值。

setToken(状态,令牌){ 0

state.token=令牌

本地存储。令牌=令牌//将令牌同步存储到本地存储

},

},

getters : {

//获取令牌方法

//判断是否有令牌,如果没有重分配,则返回状态的令牌。

getToken(状态){ 0

if(!state . token){ 0

state . token=local storage . getitem(' token ')

}

返回状态。令牌

}

},

操作: {

}

})

LocalStorage与SessionStorage存储Token

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

欢迎来到我的微信官方账号:编程笔记,文章会在微信官方账号更新。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。