vue token

当登陆成功之后,我们需要做三件事:

     1、将用户数据存储在vuex state中  以待全局其他组件的使用

      2、将用户数据存储在localstorage中

     3、将用户数据返回的token 添加到axios 的请求头(Authorization)中去 (这样也可以避免用户禁用cookie导致的登录问题)

===============================================================================================================

同样登出也是这三件事情

但还有更简便的方法:

因为页面重载 就会让axios头部和vuex中的数据全部清空。

=============================================================================================================== 

在路由中给某些页面添加权限,不登录就不能访问,如下:

然后设置路由守卫:

 

只有呢些 需要权限的页面并且没有登录的状态才需要 返回登录页面 否则正常进行登录 

===============================================================================================================

而如果登录之后,刷新之后 会导致state和axios头部 均被清空 路由守卫会强制返回登录页

就在main.js 中,从本地存储中重新设置 state 和axios的头部 

但是会出现安全问题,有个人,自己在浏览器中给localStorage加入一些数据,然后直接修改地址栏数据到权限页面,因为权限页面只是在路由规则中检测是否本地有用户数据(user),而没有检测value是否正确,所以需要在后面添加axios拦截器  如果之后页面axios因为头部信息是假的,报错 返回状态码是401没有权限 强制登出事件 如果不加这个返回的还是具体的页面只是其中的数据是没有的,后端服务token校验失败,报错。是一个凌乱的页面,所以这种时候我们直接强制登出事件,让他返回到登录页面去。

==========================================================================================

在Django和Vue中使用token进行身份验证的过程如下所示。首先,在Django的根目录的urls.py文件中,我们可以定义获取token和刷新token的路由,这需要引入TokenObtainPairView和TokenRefreshView视图。 其中,TokenObtainPairView用于验证用户并生成tokenTokenRefreshView用于刷新token。 其次,在Django的userAuth模块下新建一个auth.py文件,我们可以自定义一个用户认证类,该类继承TokenAuthentication,并实现处理token过期的逻辑。 这个自定义的认证类可以用于验证请求中的token是否有效,如果过期则返回401错误。 然后,我们可以使用Postman进行测试,确保能够成功获取token和刷新token。在测试之前,请确保已经创建了用户,在Django中使用自带的用户体系进行用户创建。创建超级用户可以使用命令行输入"python3 manage.py createsuperuser"来创建。创建完毕后,用户数据信息会生成在用户数据表中。在settings.py文件中配置的AUTH_USER_MODEL = 'login.UserInfo'将会被用于用户信息的认证。在Postman中,我们可以发送一个POST请求,设置headers为"Content-Type: application/json",同时在request body中传递用户名和密码参数,参数名分别为"username"和"password"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Django+Vue,前后端分离,实现用户权限认证](https://blog.csdn.net/qq_33398946/article/details/109974998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [vue token过期 当前页数据丢失_Vue结合DjangoRestFramework实现登录认证(下)](https://blog.csdn.net/weixin_39633113/article/details/110259044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值