token相关

一、保存token,登录使用

index.js

复制代码
    //保存token
	localSet(key, value) {
		window.localStorage.setItem(key, JSON.stringify(value))
	}

login.vue登录页

复制代码
 <script  setup>
    //登录
	const loginMethod = async (data) => {
		const params = {
			username: data.name,
			password: data.pass
		}
		const res = await http.login(params)
		if (res && res.success) {
			getLoginResourceTreeData()
			const data = res.data
			const { id, name, sessionId } = data
			utils.localSet('token', sessionId)
			utils.localSet('userid', id)
			utils.localSet('username', name)
			store
				.dispatch('user/setUserInfo', data)
				.then(() => {})
				.catch((res) => {
					loading.close()
				})
		} else {
			utils.message('error', res.info, 3000)
			loading.close()
		}
	}
	
	//获取用户属实对应菜单
	const getLoginResourceTreeData = async () => {
		const params = { resourceCode: '0' }
		const res = await http.getLoginResourceTree(params)
		if (res && res.success) {
			const data = res.data
			store
				.dispatch('user/getSystemMenus', data)
				.then(() => {
					router.push('/home')
					loading.close()
				})
				.catch((res) => {
					loading.close()
				})
		} else {
			utils.message('error', res.info, 2000)
			loading.close()
		}
	}
	
	//登录确认
	const submitForm = (formEl) => {
		loading = ElLoading.service({
			lock: true,
			text: '登录中......',
			background: 'rgba(17,28,189,0.25)'
		})
		if (!formEl) return
		formEl.validate((valid) => {
			if (valid) {
				loginMethod(ruleForm)
			} else {
				console.log('error submit!')
				return false
			}
		})
	}
 </script>
   <template>
       <div>
        <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" class="login-form">
					<el-form-item class="item" prop="name">
						<template #label>
							<el-icon class="label-icon"><User /></el-icon>
						</template>
						<el-input class="inp" v-model="ruleForm.name" placeholder="请输入账号"></el-input>
					</el-form-item>
					<el-form-item class="item" prop="pass">
						<template #label>
							<el-icon class="label-icon"><PassWord /></el-icon>
						</template>
						<el-input
							class="inp"
							v-model="ruleForm.pass"
							type="password"
							@keyup.enter="submitForm(ruleFormRef)"
							:show-password="true"
							placeholder="请输入密码"
						></el-input>
					</el-form-item>
					<el-form-item class="item center">
						<el-button class="login-bt" @click="submitForm(ruleFormRef)">登录</el-button>
					</el-form-item>
				</el-form>
       </div>
  </template>

二、

复制代码
在这里插入代码片
相关推荐
JustHappy3 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
老毛肚3 小时前
jeecg-boot-base-core 02 day
javascript·python
snow@li3 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端
yaoxin5211233 小时前
434. Java 日期时间 API - Period 基于日期的时间段
java·开发语言·python
凡人叶枫3 小时前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
学逆向的4 小时前
C++纯虚函数
开发语言·c++·网络安全
kyriewen4 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
小和尚同志4 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
程序员二叉4 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉4 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc