Vue3+Django实现保持登录状态
Request.session对象会自动生成一个cookie,该cookie名字默认为sessionoid,储存session的session_key值。当会话session过期后,该cookie将会自动消失。只有该cookie清空后,登录后的用户才能重新登录。
通过后端设置session的过期时间,时间到后,通过浏览器可以看到,cookie自动消失了。因此只需要设置,用户存在localStorage中的token值跟着cookie一起消失,就能够通过设置session的过期时间,来控制用户保持登录状态的时间,如七天免登录。
我们可能会认为其实可以根据cookie来控制登录状态,实际上想要在vue中操作cookie值是不容易。在JavaScript中,我们可以通过document.getElementId()之类的指令来控制cookie。但在vue中,使用document的指令很可能会得到空的返回值。因此,不能通过直接控制cookie的方法来实现控制登录状态。
因此,我们需要在后端多写一个接口,来检验token的有效性,从而控制用户的登录状态。
注意:cookie只会影响用户是否能够再次登录,而vue中判断用户登录,使用cookie不方便,因此只能使用token来实现。然而token跟cookie在前端是独立的,因此如果cookie过期了,而token没清除,就会导致一直保持登录,而token清除了,cookie没过期,就会导致登录状态结束后,用户无法登录。
0 人喜欢
暂无评论,来发布第一条评论吧!