vue开发:生成token保存在客户端localStorage中

Java Token登录验证 生成解析Token 借鉴参考 Java Token登录验证 使用jjwt生成和解析JWT java基于token验证之登陆验证 等 什么是Token? 我的理解来说 token就是你访问服务器的口令,只要token合法,正确,你就能获取到后端数据 当用户第一次登陆后,用户名密码验证成功后,服务器会生成一个token,把token返回到客户端,一般token都是储存在浏览器的localStorage 或 cookies中,存在localStorage的token需要通过js,将token添加到http请求头中,下次再访问服务器, 阅读详情

前面我们已经了解了可以通过localStorage在客户端(浏览器)保存数据。

回顾token

框架中的RESTful api快速领悟(中):token认证 
框架中的RESTful api快速领悟(下):token的设置

我们后端有这样一个接口:

http://localhost/yiiserver/web/index.php/token?client_appid=aaa&client_appkey=bbb 
 
  • 1
  • 1

其实就向clients(理解为用户表即可)里面去生成一个token 
这里写图片描述

这里写图片描述 
这里的client_appid 就相当于用户名,client_appkey 就相当于密码。 
这样后端认证之后会生成一个access-token,我们需要把这个access-token 保存在客户端。

注意:我们前端一般部署在另外的服务器上,会跨域,后端要处理跨域的问题,在PHP中可以写上如下代码:

//指定允许其他域名访问
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET,POST");
header('Access-Control-Allow-Headers: X-Requested-With,content-type,if-modified-since');
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

前端的套路

注意,我们项目既然早已用上了VueX,那么我肯定就要在Store(vuex里的概念)里面来创建一个module。 
这里写图片描述

我们新建了一个UsersModule.js 来处理用户登录的业务,注意不要忘记在入口文件users-index.js 中引入。如果我们的『会员后台』也需要用户相关数据,也要引入。 
在users-index.js 里修改:

//引入模块
import ResModule from './../Store/modules/ResModules';
import UsersModule from "./../Store/modules/UsersModule";
const vuex_config = new Vuex.Store({
    modules: {
        res:ResModule,
        users:UsersModule
    }
});
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1、UsersModule.js

import Vue from "vue";

export default {
    state:{
        currentUser:{
            get UserName(){
                return localStorage.getItem("currentUser_name");
            },
            get UserToken(){
                return localStorage.getItem("currentUser_token");
            }
        }
    },
    mutations:{
        setUser(state,{user_name,user_token}){
            // 在这里把用户名和token保存起来
            localStorage.setItem("currentUser_name",user_name);
            localStorage.setItem("currentUser_token",user_token);
        }
    },
    actions:{
        userLogin(context,{user_name,user_pass}){
            // 发送get请求做权限认证(真实开发建议用post的方式)
            let url = "http://localhost/yiiserver/web/index.php/token?client_appid="+user_name+"&client_appkey="+user_pass;
            console.log(url);

            Vue.http.get(url)
                .then((res)=>{
                    if (res!=null && res.body!=undefined && "access-token" in res.body){
                        var token = res.body["access-token"];
                        if (token != ""){
                            // 后端API验证通过
                            // 调用上面mutations里定义的方法
                            context.commit("setUser",{"user_name":user_name,"user_token":token});
                        }
                    }else{
                        alert("用户名密码错误");
                    }
                },(res)=>{
                    alert("请求失败进入这里")
                });
        }
    }
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

actions部分:我们写了一个userLogin()方法,来发送http请求后端服务器,请求成功返回的数据调用在mutations部分定义的setUser()方法保存到客户端。 
注意:actions里的userLogin()方法,是供在用户登录页调用的,也就是userslogin.vue里。 
所以来到userlogin.vue,修改如下代码:

        methods:{
            login(){

                // 这个验证是element-ui框架提供的方法
                this.$refs["users"].validate(function (flag) {
                    if(flag){
                        /*localStorage.setItem("currentUser",this.UserModel.user_name);
                        alert("用户登录成功");*/

                        this.$store.dispatch("userLogin",{"user_name":this.UserModel.user_name,"user_pass":this.UserModel.user_pass})
                    }else{
                        alert("用户名密码必填");
                    }
                }.bind(this));
            }
        }
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

我们来测试一下,有没有成功保存到客户端的localStorage 中: 
这里写图片描述

2、如果我们的会员后台 
http://localhost:8080/member 
也需要获取用户的登录信息,比如用户名。来显示到导航栏上。

首先是应该在会员后台模块的入口文件member-index.js中:

//引入Module
import ResModule from './../Store/modules/ResModules';
import UsersMoule from "./../Store/modules/UsersModule";
const vuex_config = new Vuex.Store({
    modules: {
        res:ResModule,
        users:UsersMoule
    }
});
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

然后我们就可以在,比如导航栏组件navbar.vue中:

<a href="##">{{this.$store.state.users.currentUser.UserName}}</a>
 
  • 1
  • 1

通过这样的方式,访问users里的属性。 
这里写图片描述

【Python百日进阶-Web开发-Vue3】Day522 - Vue3后台系统 02:登录,保存token src文件夹下,新建request文件夹,新建request.ts文件。request文件夹下,新建api.ts文件。 阅读详情

相关推荐

使用Vue生成并保存Token到客户端的LocalStorage中

在Vue.js应用程序中,我们可以生成并保存Token到客户端的LocalStorage中,以便在后续的请求中使用它。通过以上步骤,我们成功地生成并保存了Token到客户端的LocalStorage中,并在后续的请求中使用它进行身份验证。在上面的示例中,我们使用了一个假的Token(‘example_token’),你需要根据实际需求替换为真实的Token。在上面的示例中,我们使用了Axios库来发起HTTP请求,并在请求头中添加了Token(通过Bearer身份验证方案)。希望这个示例对你有帮助!

laugh666的博客 487

视频电商网站 - 生成token保存在客户端localStorage中

前面我们已经了解了可以通过localStorage在客户端(浏览器)保存数据。回顾token框架中的RESTful api快速领悟(中):token认证 框架中的RESTful api快速领悟(下):token的设置我们后端有这样一个接口:http://localhost/yiiserver/web/index.php/token?client_appid=aaa&client_appkey=bb

9284

RK3568 NFS rootfs配置与调试实战指南(已验证)

本文提供了在RK3568开发板上配置NFS rootfs的完整实战指南。通过详细步骤讲解如何配置uboot的bootargs参数、编译支持NFS的内核,并在PC端搭建TFTP与NFS服务器,最终实现从网络挂载根文件系统,从而极大提升驱动调试和应用程序开发的迭代效率。

weixin_29175469的博客 281

vue如何存储token

在Vue中,可以使用vuex来存储token。首先,你需要在store文件夹中创建一个js文件,在该文件中定义一个state来存储token。然后,你可以创建一些mutation来更改该state。最后,你可以在需要使用token的组件中,使用mapState和mapMutation导入state和mutation。 ...

weixin_35749796的博客 858

算法系列之十二:多边形区域填充算法--几种边标志填充算法

四、边界标志填充算法 在光栅显示平面上,多边形是封闭的,它是用某一边界色围成的一个闭合区域,填充是逐行进行的,即用扫描线逐行对多边形求交,在交点对之间填充。边界标志填充算法就是在逐行处理时,利用边界或边界颜色作为标志来进行填充的。准确地说,边界标志填充算法不是指某种具体的填充算法,而是一类利用扫描线连贯性思想的填充算法的总称。这类算法有很多种,本篇就介绍几种。 首先介绍一种以边为中心的边缘填充...

java开发指南博客 【转载】 1898

FT2004(D2000)开发实战之网口stmmac报错调试(Failed to reset the dma)

网口stmmac报错调试(Failed to reset the dma)

嵌入式Linux 3584

vue中的token存储和使用

vue项目

m0_63685436的博客 2780

计算机组成原理(第三版)唐朔飞-第九章控制单元的功能-课后习题

计算机组成原理(第三版)唐朔飞-第九章控制单元的功能-课后习题

weixin_45735391的博客 4万+

vue3+ts报错

ts中localStorage.getItem、window.location报错 改成: JSON.parse(localStorage.getItem('admin.routes') || '{}') (<any>window).location = ''

Cupid 1008

YOLOv8-COCO指标转换

本文介绍了将YOLO格式数据集转换为COCO格式并评估模型性能的完整流程。首先需将YOLO格式的标注数据转换为COCO格式,通过修改classes、image_path等参数适配不同数据集。然后使用YOLO模型对验证集进行预测并保存结果为JSON格式。最后通过比较预测结果和转换后的COCO标注文件,使用COCO官方评估指标和TIDE工具进行性能分析,生成包含AP、AR等指标的报告及错误分析图表。整个过程实现了从数据准备到模型评估的完整闭环,为计算机视觉任务提供标准化的性能评估方案。

FJN110的博客 402

Qt 【window udp 高频采集丢包问题】

使用Asio + 无锁队列或者环形缓存区方案可以解决 qt udp 在window平台高速采集 (128k)丢包问题。

weixin_45397344的博客 177

vue项目将token存在(vuex)store和localstorage中

文章目录一、准备工作和token1、准备工作1、介绍token用法二、创建storage,store,request1、src目录:2、创建storage(可选)3、创建store4、创建request三、配置代理,封装路由router、设置路由守卫,在main.js中引入router一、配置代理二、封装路由router,并设置路由守卫三、在main.js中引入router四、登录页面实际使用 仔......

GeniusXYT的博客 2万+

【SECS】初识SECS协议

项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。

weixin_48618536的博客 1642

Token保存在localStorage还是Cookie(HttpOnly),两种实现

如何安全存储和传输身份验证令牌?本文对比了两种主流方案:localStorage+请求头与HttpOnly Cookie。

weixin_74280926的博客 1144

12、多端神经形态晶体管:原理、应用与算法探索

本文综述了多端神经形态晶体管的原理、应用与算法探索。从神经元MOS晶体管的发展到基于电解质栅极晶体管(EGT)的新型器件设计,系统阐述了其在低电压、多功能逻辑运算和突触行为模拟方面的优势。重点介绍了其在化学生物传感器(如多巴胺和pH检测)中的高灵敏度应用,以及在树突整合、时空总和、动态逻辑和神经元算术等树突算法中的实现。文章还总结了该类器件在神经形态计算、智能传感等领域的广阔前景,并分析了当前面临的材料工艺、理论建模与系统集成挑战,展望了未来发展方向。

delta的博客 143

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

php token 存储,vue生成token保存在客户端中详解

本文主要介绍了vue生成token保存在客户端localStorage中的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。前面我们已经了解了可以通过localStorage在客户端(浏览器)保存数据。我们后端有这样一个接口:http://localhost/yiiserver/web/index.php/token?client_appid=aa...

weixin_33433927的博客 455

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

vue前端利用localStorage存储token值并放到请求头headers实例

vue前端利用localStorage存储token值并放到请求头headers实例 之前在关于登录接口的一篇博客里,我有提到过token,在这篇博客里我会介绍token在前端如何存取,同时把它放在请求头里获取数据。 1、关于token 为什么要用Token: Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,...

bentou_的博客 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

vue中访问后台所携带的token值为什么会放在cookie中,而不是放在localStorage和sessionStorage中

vue中访问后台所携带的token值为什么会放在cookie中,而不是放在localStorage和sessionStorage中 1、因为cookie采取同源策略,只有相同域名的网页才能获取域名对应的cookie,而别人在其他域名无法获取你的cookie,也就无法获取你的token,所以当别人伪造请求时,token和cookie中的token是绝对不一致的; cookie和session 相同:都是用来跟踪浏览器用户身份的会话方式; 区别: 保持状态:cookie保存在浏览器端,session保存在服务端

weixin_44647865的博客 3万+

token + localstorage 验证登录(vue)详细教程

token 验证登录是目前比较主流的前端登录校验方案,采用 token + localStorage + vuex 做令牌存储验证,包含 axios 二次封装、路由守卫、api 模块化等操作

学海无涯,回头是岸 3716

vue项目token放在哪里_vue项目中token的使用

一.了解用法1.了解(session,cookie)tokenToken的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。token 是在服务端产生的一串字符串,以作客户端进行请求的一个令牌。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 T...

weixin_39765695的博客 5544

vue项目中token的使用

token 在第一次登录时,客户端携带用户名与密码向服务端发送登录请求,此时服务端接收到用户名与密码后与数据库进行比对判断,如果正确,就将本地获取sessionID作为token,然后将这个token返回给客户端。这时客户端拿到返回的token令牌,将其保存到sessionStorage中。 window.sessionStorage.setItem('token', res.data.token) 然后再进行跳转路由页面。 this.$router.push('/home') 在接下来的项目中,每次跳

sy1486011506的博客 3473

vue生成token保存在客户端localStorage中的方法

https://www.jb51.net/article/126720.htm

weixin_43254676的博客 4230

在vue中封装axios,可在headers里面带token

先来看一下装好的axios源码 import axios from 'axios' import { Message } from 'iview' // 统一请求路径前缀 // // const base = '/crdp'; // const base = '/ccma-server/api' // 服务器地址/ const base = '/api' // 本地// // 超时设定 a...

前端李小白的博客 5766

java基于token验证之登陆验证

转载地址:https://blog.youkuaiyun.com/kkkun_joe/article/details/81878231 以上博主讲的更清除些,此博客是为了自己加深记忆。 对于前后端分离的项目来说session来判断是否登陆实现比较困难,token是比较好的方式。 大概流程: 1.用户登陆,若成功则后台生成一个token,并把此token返回给客户端浏览器 2.客户端接收到token...

weixin_39102174的博客 6601

Vue/React项目实现axios请求拦截器注入token

欢迎来到我的博客【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏React框架。

Coding and studying 2382
上一篇: ajax开发:在ajax请求后台时在请求标头RequestHeader加token
下一篇: vue开发:移动端图片上传
Generon
博客等级 码龄11年 135粉丝 135原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值