news 2026/7/6 15:56:47

vue-example-login用户会话管理:Cookie存储与过期时间设置技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue-example-login用户会话管理:Cookie存储与过期时间设置技巧

vue-example-login用户会话管理:Cookie存储与过期时间设置技巧

【免费下载链接】vue-example-login🔥A login demo for Vue.js.项目地址: https://gitcode.com/gh_mirrors/vu/vue-example-login

vue-example-login是一个基于Vue.js的登录示例项目,提供了完整的用户会话管理功能,包括Cookie存储、过期时间设置和用户状态验证等核心功能。本文将详细介绍该项目中Cookie存储与过期时间设置的实用技巧,帮助开发者快速掌握用户会话管理的最佳实践。

Cookie存储基础:如何在Vue项目中实现会话持久化

在vue-example-login项目中,Cookie操作被封装为Vue原型方法,方便全局调用。核心实现位于js/app.js文件中,通过setCookie方法实现用户会话数据的持久化存储:

Vue.prototype.setCookie = (c_name, value, expiredays) => { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); }

该方法接收三个参数:Cookie名称、存储值和过期天数,通过expires属性设置Cookie的有效期。在登录场景中,典型应用如component/Login.vue所示,登录成功后将服务器返回的session ID存储到Cookie中:

this.setCookie('session', response.data.session, expireDays);

过期时间设置:平衡安全性与用户体验的黄金法则

vue-example-login项目采用15天作为默认的会话过期时间,这个时间长度在安全性和用户体验之间取得了很好的平衡。在component/Login.vue中可以看到相关实现:

//登录状态15天后过期 const expireDays = 15; this.setCookie('session', response.data.session, expireDays);

设置过期时间的三大原则

  • 安全性优先:对于涉及敏感操作的系统,建议将过期时间设置为1-7天
  • 用户体验优化:对于内容浏览类应用,可适当延长至15-30天
  • 场景差异化:根据不同功能模块设置不同的过期策略,如支付模块使用较短有效期

完整的Cookie生命周期管理:创建、读取与删除

vue-example-login项目实现了完整的Cookie生命周期管理,主要包括三个核心方法:

1. 创建Cookie(setCookie)

如前所述,js/app.js中的setCookie方法负责创建带有过期时间的Cookie,支持会话级Cookie(不设置过期时间)和持久化Cookie(设置过期天数)两种模式。

2. 读取Cookie(getCookie)

function getCookie(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) return (arr[2]); else return null; } Vue.prototype.getCookie = getCookie;

3. 删除Cookie(delCookie)

通过将过期时间设置为过去时间实现Cookie删除:

Vue.prototype.delCookie =(name) => { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); }

在用户登出时,component/UserInfo.vue调用delCookie方法清除会话信息:

//删除cookie并跳到登录页 this.delCookie('session');

会话验证机制:保障应用安全的第一道防线

vue-example-login项目在应用初始化时会自动检查用户登录状态,实现位于js/app.js的checkLogin方法:

checkLogin(){ //检查是否存在session if(!this.getCookie('session')){ this.$router.push('/login'); }else{ this.$router.push('/user_info'); } }

通过路由守卫和Cookie检查相结合的方式,确保未登录用户无法访问受保护资源。这种机制在单页应用中尤为重要,可以有效防止未授权访问。

最佳实践总结:提升用户会话管理质量的5个技巧

  1. 合理设置过期时间:根据应用类型和安全需求设置合适的Cookie过期时间,避免过长或过短
  2. 封装Cookie操作:如项目中所示,将Cookie操作封装为Vue原型方法,提高代码复用性
  3. 及时清除敏感信息:用户登出时务必清除所有会话相关Cookie,避免信息泄露
  4. 结合路由守卫:利用Vue Router的导航守卫功能,实现全局的登录状态验证
  5. 状态集中管理:通过Vuex存储用户信息(如js/app.js中的userInfo对象),保持应用状态一致性

通过vue-example-login项目提供的这些会话管理技巧,开发者可以构建更加安全、用户友好的Vue应用。无论是小型项目还是大型系统,合理的Cookie存储策略和过期时间设置都是提升应用质量的关键因素。

【免费下载链接】vue-example-login🔥A login demo for Vue.js.项目地址: https://gitcode.com/gh_mirrors/vu/vue-example-login

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 15:56:05

Rogue Mysql Server源码解析:main函数工作流程与关键处理逻辑

Rogue Mysql Server源码解析:main函数工作流程与关键处理逻辑 【免费下载链接】rogue_mysql_server A rouge mysql server supports reading files from most mysql libraries of multiple programming languages. 项目地址: https://gitcode.com/gh_mirrors/ro/…

作者头像 李华
网站建设 2026/7/6 15:55:08

django-mongoengine完全指南:如何无缝集成MongoDB与Django框架

django-mongoengine完全指南:如何无缝集成MongoDB与Django框架 【免费下载链接】django-mongoengine django mongoengine integration 项目地址: https://gitcode.com/gh_mirrors/dj/django-mongoengine 想要在Django项目中轻松使用MongoDB数据库吗&#xff…

作者头像 李华
网站建设 2026/7/6 15:54:25

CodexGuide × Obsidian:在知识库中自动生成配图的终极指南

CodexGuide Obsidian:在知识库中自动生成配图的终极指南 【免费下载链接】CodexGuide CodexGuide:面向全球初学者、创作者、开发者与团队的 Codex 实践指南 项目地址: https://gitcode.com/gh_mirrors/co/CodexGuide 想要在Obsidian知识库中轻松…

作者头像 李华
网站建设 2026/7/6 15:53:46

7步搞定Syncthing:跨平台文件同步完整指南

7步搞定Syncthing:跨平台文件同步完整指南 【免费下载链接】syncthing Open Source Continuous File Synchronization 项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing 你是否曾经因为云存储的隐私问题而夜不能寐?或者被多设备间的文…

作者头像 李华
网站建设 2026/7/6 15:52:53

RISC-V处理器验证:你的芯片真的“听话“吗?

RISC-V处理器验证:你的芯片真的"听话"吗? 【免费下载链接】riscv-tests 项目地址: https://gitcode.com/gh_mirrors/ri/riscv-tests 想象一下,你刚刚设计了一款全新的RISC-V处理器,指令流水线优雅流畅&#xff…

作者头像 李华
网站建设 2026/7/6 15:49:55

OpenVoice终极指南:如何用3秒音频实现跨语言语音克隆

OpenVoice终极指南:如何用3秒音频实现跨语言语音克隆 【免费下载链接】OpenVoice Instant voice cloning by MIT and MyShell. Audio foundation model. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice OpenVoice是由MIT和MyShell联合开发的革…

作者头像 李华