Vue实现登陆时token存放到Vuex
一、Vue实现登陆时token存放到Vuex
1.登录页面
<template>
<div>
<h1>登录</h1>
{{ $store.state.token }}
<el-form ref="form" :rules="rules" :model="form" label-width="80px">
<el-form-item label="账号" prop="username">
<el-input v-model.trim="form.username" ></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input type="password" v-model="form.password" ></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">登录</el-button>
</el-form-item>
</el-form>
</div>
</template> <script>
export default {
methods:{
onSubmit(){
this.$refs.form.validate((valid) => {
if (valid) {
this.$store.dispatch('setTokenAsync',this.form);
} else {
console.log('error submit!!');
return false;
}
});
}
},
data(){
return {
form:{},
rules: {
username: [
{ required: true, message: '请输入账号', trigger: 'blur' },
{ min: 2, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' }
]
}
}
}
}
</script> <style lang="scss" scoped> </style>
2.store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import {login} from '@/api/login' Vue.use(Vuex) export default new Vuex.Store({
state: {
token:''
},
getters: {
},
mutations: {
setToken(state,token){
state.token=token;
}
},
actions: {
// context:就是外部文件文件中使用的 this.$store
// {commit}=context,要使用context中的属性,将要使用的属性解构出来
setTokenAsync({commit},form){
login(form).then(res=>{
commit('setToken',res.token);
}).catch(err=>{
console.log("err:",err);
})
}
}
})
3.api/login.js
import request from '@/utils/request';
import qs from 'qs'; export function login(data){
return request({
url:"/api/login.php",
method:'post',
data: qs.stringify(data)
})
}
4.utils/request.js
import axios from "axios";
import { Message } from 'element-ui'; // export 可以有无数个
export const API_URL='http://www.ggqadminapi.com' // 创建实例时设置配置的默认值
var instance = axios.create({
baseURL: API_URL
}); // 添加响应拦截器
instance.interceptors.response.use(function (response) {
console.log(response);
let res=response.data;
if(res.code!=0){
Message.error(res.message);
return Promise.reject(res.message);
}
// 对响应数据做点什么
return res;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
}); //export defaulf 默认导出,一个页面只能有一个
export default instance;
5.效果实现


Vue实现登陆时token存放到Vuex的更多相关文章
- koa2+vue实现登陆以及是否登陆控制
这里我们先说说登陆以及登陆状态控制需要的插件jsonwebtoken,jsonwebtoken就可以实现token的生成与反向解密出用户数据.安装步骤: npm install jsonwebtoke ...
- [前端] VUE基础 (9) (element-ui、axios、Vuex)
一.element-ui的使用 官方网页:https://element.eleme.cn/#/zh-CN 1.安装element-ui (venv) D:\pycharm_workspace\vue ...
- 登陆时不同浏览器获取session存在的相关疑问?
问题1:在同一个电脑上,登陆成功后,将登陆信息存放到session域中后,使用另一个浏览器访问时,能否获取这个session域中的值? request.getSession().setAttribut ...
- 前端笔记之Vue(四)UI组件库&Vuex&虚拟服务器初识
一.日历组件 new Date()的月份是从0开始的. 下面表达式是:2018年6月1日 new Date(2018, 5, 1); 下面表达式是:2018年5月1日 new Date(2018, 4 ...
- 从数据库得到的结果集存放到List集合中
一.业务阐述 在开发中查询的数据库结果集,既要连接数据库.执行数据库操作.关闭数据库,还要把结果集的记录人为的设置到自己封装的DAO中等一系列的重复代码. 本文主要是想解决:用户只需要得到数据库连接, ...
- 请求时token过期自动刷新token
1.在开发过程中,我们都会接触到token,token的作用是什么呢?主要的作用就是为了安全,用户登陆时,服务器会随机生成一个有时效性的token,用户的每一次请求都需要携带上token,证明其请求的 ...
- 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)
其实登录注册,并且登录一次保持登录的状态,是每个项目都需要实现的功能. 网上也有很多的方法,不过,不是通俗易懂,在这里说一下我自己的方法,非常简单实用核心就是用localStorage存.取数据,这样 ...
- LINUX使用SSH远程终端时,如何将运行时间长的程序在后台挂起,下次SSH登陆时继续使用同一个SHELL?
我在某个平台上购买了一个云服务器,LINUX操作系统无图形化界面,硬盘空间较小.虽然在平台上可以通过其自带网页版VNC界面登陆SHELL进而操控云主机,但是每次需要操控都得打开网页登陆进平台,然后再进 ...
- vite搭建vue项目-集成别名@、router、vuex、scss就是这样简单
为什么要使用vite 当我们开始构建越来越大型的应用时, 需要处理的 JavaScript 代码量也呈指数级增长. 包含数千个模块的大型项目相当普遍. 这个时候我们会遇见性能瓶颈 使用 JavaScr ...
- SYSDBA身份登陆时可以修改其他用户的密码
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:SQL> alter user user01 identified by user10;用户已更改.这个是把USER01用户密码修改为US ...
随机推荐
- Windows平台调试器原理与编写05.内存断点
https://www.bpsend.net/thread-274-1-3.html 内存断点 访问断点 写入断点 内存写入断点 简介:当被调试进程访问,读或写指定内存的时候,程序能够断下来. 思考1 ...
- File与IO流之File基础
File构造方法: public File(String pathname){} //将字符串路径变成File对象 public File(String parent , String chlid){ ...
- RBMQ案例三:发布/订阅模式
在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 -- 分发一个消息给多个消费者(consumers).这种模式被称为&quo ...
- Go基础0x02-go build -tags使用
Go语言提供的build -tags条件编译特性,顾名思义,只有在特定条件下才会构建对应的代码. 本文实现一个根据go bulid -tags功能来编译不同版本的做法,version参数根据tags传 ...
- K8S的API Server认证介绍
一.说明 kube-apiserver是k8s最重要的制组件之一,主要提供以下功能: 提供集群管理的REST API 接口, 包括认证授权.数据校验以及集群状态变更等 k8s 中所有模块与 etcd ...
- GStreamer开发笔记(七):gstreamer播放ogg详解
前言 gtreamer播放ogg音频文件的流程讲解. Ogg Ogg全称是OGGVobis(oggVorbis)是一种音频压缩容器格式.Ogg格式不仅是一个高效的容器格式,它还融合了Vor ...
- 函数使用十二:BAPI_CONTRACT_CREATE
*&---------------------------------------------------------------------* *& Report ZBAPI_WB2 ...
- 袋鼠云批流一体分布式同步引擎ChunJun(原FlinkX)的前世今生
一.前言 ChunJun(原FlinkX)是一个基于Flink提供易用.稳定.高效的批流统一的数据集成工具,是袋鼠云一站式大数据开发平台-数栈DTinsight的核心计算引擎,其技术架构基于实 ...
- 官宣 | 袋鼠云获过亿元C+轮融资,深耕国产自研数字化技术与服务
近日,国内领先的数字化技术与服务提供商--袋鼠云宣布完成过亿元C+轮融资,本轮融资由源星昱瀚基金.国中资本.深创投投资. 本轮融资资金将主要用于袋鼠云核心产品的研发.产品生态体系建设和市场营销推广等方 ...
- MCP Server 之旅第 7 站:助力 MCP 打破“黑盒困境”
背景 在分布式系统中,请求链路追踪(Trace) 是诊断性能瓶颈.定位故障的核心能力.近期,阿里云函数计算的 Tracing 能力由 2.0 的 Jeager 升级为 OpenTelemetry 标准 ...