网站开发工程师是什么意思重庆大学建设管理与房地产学院网站

news/2025/9/24 10:13:15/文章来源:
网站开发工程师是什么意思,重庆大学建设管理与房地产学院网站,谷德设计网介绍,无锡市政建设集团网站什么是token#xff1f;token是一个用户自定义的任意字符串#xff0c;目前开发中#xff0c;token都是在服务端生成并且token的值会保存到服务器后台。只有服务器和客户端知道这个字符串#xff0c;于是#xff0c;这个token就成了两者之间的秘钥#xff0c;它可以让服务…什么是tokentoken是一个用户自定义的任意字符串目前开发中token都是在服务端生成并且token的值会保存到服务器后台。只有服务器和客户端知道这个字符串于是这个token就成了两者之间的秘钥它可以让服务器确认请求是来自客户端还是恶意的第三方。为什么使用token简单地说token的使用就是为了数据安全前台是通过接口路径(URL)的调用来获取数据的如果恶意的第三方知道了某一个接口路径那么他便可以直接通过接口路径在网页上直接获取该接口的所有数据信息。如果添加了token类似于这种恶意的行为便不会产生。token是在用户登录的时候产生的在前台登录某一个系统并且获得一个token之后前台需要将该token设置在请求头上以确保之后的每一次请求都是带着该“令牌“的当然后台的接口请求也设置了该请求头。(如果对后台生成token并且对该token的设置以及存储感兴趣的话请关注下一篇文章~~~)基于token验证的流程客户端使用用户名跟密码请求登录服务端收到请求去验证用户名和密码(后台根据请求去数据库查找是否有该用户)验证成功后服务端会签发一个token(该token值一般都会存入Redis数据库中并设置过期时间)再把这个token发送给客户端客户端收到token之后一般存储在localStorage(HTML5新特性只要不手动删除存储的内容存储的信息会一直存在)中客户端每次向服务端请求资源的时候需要带着服务端签发的token服务端收到请求然后去验证客户端请求里面带着的token(token是否为该用户的令牌以及token是否有效等)如果验证成功就向客户端返回请求的数据什么是axiosAxios 是一个基于 promise 的 HTTP 库可以用在浏览器和 node.js 中。vue实现axios拦截token验证在简单介绍完这些基础知识以及用到的插件之后我们便要开始今天的主题--token验证。首先在vue.js 中下载axiosnpm install axios,在main.js文件中全局使用import axios from axios;Vue.prototype.$http axios;复制代码这样引入之后在其他的文件中便可以使用$http来调用接口getRoomDetail() {this.$http.get(this.roomDetailApi).then(res {this.roomDetail res.data.data;},err {console.log(接受数据错误 err);}).catch(err {console.log(服务器错误 err);})}复制代码以上步骤只是简单的实现了前后台的交互(在前台调用后台接口来获取数据)接下来我们便要进一步学习实现token的验证。根据上面的介绍我们在成功登录后台并拿到返回给的token之后需要使用localStorage全局存储实现代码如下// 用户登录login() {this.postData {account: this.userInfo.account,password: this.$md5(this.userInfo.password),};this.$http.post(configIp.apiConfig.user.login, this.postData).then(res {if (res.data.errno 0) {this.$Message.success(登陆成功);this.$router.push(roomInfo);//全局存储tokenwindow.localStorage[token] JSON.stringify(res.data.data.token);} else {this.$Message.error(登录失败);this.forgetPassword true;}}).catch(err {console.log(登录失败);})},复制代码接下来我们要做的就是设置请求头在之后的接口请求过程中都要通过token的认证来获取数据添加 http.js 文件(拦截器)import axios from axios;import router from ./router;// axios 配置axios.defaults.timeout 8000;axios.defaults.baseURL https://api.github.com;// http request 拦截器axios.interceptors.request.use(config {if (localStorage.token) { //判断token是否存在config.headers.Authorization localStorage.token; //将token设置成请求头}return config;},err {return Promise.reject(err);});// http response 拦截器axios.interceptors.response.use(response {if (response.data.errno 999) {router.replace(/);console.log(token过期);}return response;},error {return Promise.reject(error);});export default axios;复制代码添加拦截器之后修改 main.js文件将上面import axios from axios;Vue.prototype.$http axios;复制代码改为import http from ./http; //此处问http文件的路径Vue.prototype.$http http;复制代码完成该步骤之后基本的操作已经实现了下面让我们查看一下是否已经添加请求头以上操作实现了添加请求头token在之后的请求中会自动添加该请求头但是不是每一个页面都需要登录权限(后台会实现不需要进行token验证的筛选)那么前台也需要通过路由的meta标签对需要做校验的路由页面进行标记其他页面则不需要验证代码如下:{path: /userInfo,name: userInfo,meta: {requireAuth: true, // 该路由项需要权限校验}component: userInfo}, {path: /userList,name: userList, // 该路由项不需要权限校验component: userInfo}复制代码之后我们可以定义一个路由防卫每次路由跳转我们都来做一下权限校验参考代码如下router.beforeEach((to, from, next) {if (to.meta.requireAuth) { // 判断该路由是否需要登录权限if (localStorage.token) { // 获取当前的token是否存在console.log(token存在);next();} else {console.log(token不存在);next({path: /login, // 将跳转的路由path作为参数登录成功后跳转到该路由query: {redirect: to.fullPath}})}}else { // 如果不需要权限校验直接进入路由界面next();}});复制代码到此用vue.js实现前台添加请求头通过axios设置拦截器添加token就已经实现了。如果对node.js实现生成token处理token等操作感兴趣希望关注下一篇文章~~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:python全栈-数据可视化

实用指南:python全栈-数据可视化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

sql over()函数使用

起因 最近我在推送数据到中间库时,由于源表比较大,所以采用了基于主键ID的分批推送,于是就有了如下脚本: -- 第一步,推送数据 insert into Interconnect..Steps SELECT TOP (@batch_size) StepID, {其他业务字段}…

小柏实战学习Liunx(图文教程三十二)

小柏实战学习Liunx(图文教程三十二)本节课主题:linux(CentOS Stream 9 64bit)安装Docker,LangBot,NapCatQQ 前言:一定要知道每一个命令是啥意思,并且要学会看报错信息,学会使用AI。 (centos7 注定要被淘汰了,公司已经…

绵竹网站制作狗和女主人做爰网站

在Docker中搭建Redis主从架构非常方便,下面是一个示例,演示一下如何使用Docker Compose搭建一个Redis主从复制环境。首先,确保我们本地环境已经安装了Docker和Docker Compose。 我这里使用OrbStack替代了Docker desktop。 1. 创建一个名为r…

Git回退版本 reset、revert、read-tree、restore

一、git reset git reset [--soft | --mixed | --hard] [目标版本][目标版本]:使用git log获取目标版本的SHA 使用git reflog获取目标版本的短SHA HEAD: 当前版本 HEAD^:上一个版本 HEAD^^:上上一个版本 HEAD~数字…

详细介绍:LeetCode 240. 搜索二维矩阵 II

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Avalonia 背景颜色Transparent在用户界面设计中对悬浮效果影响的总结

Transparent 对悬浮效果的影响 在用户界面设计中,透明(Transparent)属性常用于控制组件如何处理鼠标事件及视觉呈现。特别是在Avalonia UI框架中,设置控件的背景色为透明对实现交互效果如悬停反馈有重要影响。 1. …

飞书 燕千云焕新上线,飞书用户即刻试用ITSM工具

飞书x燕千云ITSM,让IT服务再焕新当飞书的协作流畅性,与燕千云智能服务流平台的专业IT服务能力相遇,飞书用户在无需改变使用习惯的情况下,也能获得更智能、更高效、更简便的企业IT服务新体验。深度集成飞书生态,即…

如果使用微软 Azure 托管的 OpenAI 服务

使用微软 Azure 托管的 OpenAI 服务时,LangChain4j 提供了专门的集成支持,通过 langchain4j-azure-openai 模块可以轻松实现交互。以下是详细的使用指南: 1. 准备工作创建 Azure OpenAI 资源:在 Azure 门户 中创建…

西樵网站建设公司电脑做apk的网站h5

Windows Server 2012姗姗来迟,最新的Hyper-V 3给我们带来更多的惊喜,后续三篇博文和大家共同学习虚拟机CPU竞争机制。 第一部分:分配给虚拟机的CPU资源 第二部分:限定虚拟机可用的CPU利用率 第三部分:争夺CPU资源优先级…

Alibaba Cloud Linux与 RHEL/CentOS版本对应关系 - 实践

Alibaba Cloud Linux与 RHEL/CentOS版本对应关系 - 实践2025-09-24 09:52 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

免费表格模板网站建设视频网站的视频源

ArrayList 基于数组实现,无容量的限制。 在执行插入元素时可能要扩容,在删除元素时并不会减小数组的容量,在查找元素时要遍历数组,对于非null的元素采取equals的方式寻找。 是非线程安全的。 注意点: &#xff08…

象山县城乡建设局网站网站主页图片怎么换

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 数学建模:多目标优化算法 多目标优化 分别求权重方法 算法流程: 两个目标权重求和,化为单目标函数,然后求解最优值 min ⁡ x ∑ i 1 m w i F i ( x ) s.…

OpenCV:人脸识别实战,3 种算法(LBPH/EigenFaces/FisherFaces)代码详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:Playwright录制时的高亮实现机制分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

什么是文件外发审批?主要有哪几种关键流程?

文件外发审批是企业进行外部文档传输时不可或缺的一部分。它涵盖了从申请发起到文档送达后反馈的一系列环节。在申请阶段,员工需要利用Ftrans B2B企业间文件安全交换系统,准确填写申请信息以确保透明度和合规性。随后…

VPX处理板设计原理图:9-基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡 C6678板卡, XC7VX690T板卡, VPX处理板

基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡 一、概述本板卡基于标准6U VPX 架构,为通用高性能信号处理平台,系我公司自主研发。板卡采用一片TI DSP TMS320C6678和一片Xilinx公司Virtex 7系列的FPGA XC7V6…

Python入门—Mac如何搭建Python开发环境?

Python入门—Mac如何搭建Python开发环境?Python入门—Mac如何搭建Python开发环境?编程玉子 ​关注她14 人赞同了该文章随着Numpy、Scipy、Matplotlib和Pandas等众多程序库的开发,python在数据分析、数据挖掘、海量数…

织梦做网站简单吗高端网站建设公司排名

1.概述 封装(Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制…

VitePress 添加友链界面

效果预览友链数据存储 友链数据通常是经常需要添加和修改的,所以我们不能直接写死到页面上。这里我们单独提一个文件去存储友链数据,并且友链数据的格式基本也是类似的。 新建 docs/pages/links.md 文件,内容如下:…