token详解

简介: token详解

token详解


前言

本篇博客主要从什么是token?为什么要使用token?如何使用token?项目实例这几个方面讲解token,通过本篇博客能够对token能够有更深入的理解,并且有思路应用在具体项目中。

什么是token?

Token 在计算机身份认证中是令牌的意思,表示执行某些操作的权利的对象。通俗的意思是token是身份的象征,有了这个token了你就能有权利做些什么事。


token是在服务器端产生,如果前端使用用户名密码向服务端请求认证,服务端认证成功,那么服务端就会返回Token给前端。前端可以在每次请求的时候带上Token来证明自己的合法地位。

为什么要使用token?

  1. 从上面token的定义中我们可以看出token可以进行用户身份鉴权认证。
  2. 提高安全性:Token可以防止未经授权的用户访问受限资源。使用Token进行身份验证和授权可以避免传统的基于Cookie和Session的身份验证方式带来的一些安全风险,例如CSRF攻击和会话劫持等。

  3. 减少服务器负担:使用Token可以减轻服务器的负担,因为服务器无需保存用户的身份信息和状态信息。相反,每次请求中都包含了Token,服务器只需要对Token进行验证即可判断用户的身份和权限。

  4. 提高性能:使用Token可以减少网络传输和服务器的负载,因为Token可以被存储在客户端,客户端在每次请求时将Token带到服务器,而不需要每次请求都要传递身份信息和状态信息。


那么如何使用token呢?

使用Token进行身份验证和授权的过程

  1. 用户提供用户名和密码进行登录。
  2. 服务器验证用户名和密码的正确性,如果验证通过,则生成一个Token,并将Token返回给客户端。
  3. 客户端保存Token,并在以后的每次请求中都将Token携带到服务器。
  4. 服务器在接收到请求时,会对Token进行验证,以确定该请求是否被授权。
  5. 如果Token验证通过,则服务器处理请求,并返回所请求的资源或操作的结果。
  6. 如果Token验证失败,则服务器返回一个未授权的错误响应,客户端需要重新进行身份验证或者刷新Token。

具体步骤

  1. 生成Token:服务器在用户登录成功后,会生成一个Token,并返回给客户端。Token一般是一串加密的字符串,包含用户的身份信息和权限信息等。
  2. 保存Token:客户端在接收到Token后,需要将其保存在本地,以便后续的请求中携带Token。
  3. 携带Token:客户端在每次请求时,需要在请求头中携带Token,以便服务器进行验证。
  4. 验证Token:服务器在接收到请求时,需要从请求头中获取Token,并进行验证。如果Token验证通过,则处理请求,否则返回错误响应。
  5. 刷新Token:为了避免Token被恶意攻击或过期,客户端需要定期刷新Token,可以在Token即将过期时,向服务器发送刷新Token的请求,以获得新的Token。

项目上如何运用的token

列举的是目前公司使用token进行用户身份鉴权的大致流程:



c689d384f28341ff9e7cc3b56b19e997.png

token过期了什么办?

Token续活

目前项目中的Token续活方式,当前在redis设置token的过期时间为24分钟(根据项目业务的使用情况进行制定的),从前端来的每一次请求都在网关处对token进行续活,只要这个token还没有过期就会一直更新它的过期时间。如果某一次来的http请求间隔时间超过了24分钟,那么这个时候token已经过期了,无法进行续活。前端会重定向到登陆页面提示用户进行登陆。


总结

在使用Token进行身份验证和授权时,Token通常是存储在HTTP请求头中的,如果使用HTTP协议进行通信,那么Token就会被以明文的形式传输,容易被窃取或篡改,从而导致安全风险。而使用HTTPS协议,可以保证Token在传输过程中被加密,并且客户端和服务器的身份都经过了身份验证,从而有效地防止了中间人攻击和窃听等安全风险。


HTTPS协议可以通过使用SSL或TLS等安全协议,在客户端和服务器之间建立一条安全的加密通道,使得通信过程中的数据在传输过程中被加密,从而保证数据的机密性。同时,HTTPS协议还可以使用数字证书进行身份验证,确保客户端和服务器的身份都是可信的,从而保证身份的合法性和完整性。


升华

多角度看问题,多个维度看问题能够更加深入的理解和学习到该知识点。例如5w2h的方式。


目录
相关文章
|
算法 Go 文件存储
DAMO-YOLO: 兼顾速度与精度的新目标检测框架
我们团队最近开源了DAMO-YOLO!其效果达到了YOLO系列的SOTA,欢迎各位试用!​简介DAMO-YOLO是一个兼顾速度与精度的目标检测框架,其效果超越了目前的一众YOLO系列方法,在实现SOTA的同时,保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了一系列新技术,对整个检测框架进行了大幅的修改。具体包括:基于NAS搜索的新检测backbone结构,更深的neck结构,精
1559 0
DAMO-YOLO: 兼顾速度与精度的新目标检测框架
|
存储 安全 数据安全/隐私保护
Token 是什么?全面解析身份认证中的 Token 机制
本文全面解析Token在身份认证中的核心机制,涵盖JWT、Session Token、OAuth等类型,深入讲解其工作原理、安全性策略、生命周期管理及实际应用场景,助力开发者构建安全高效的现代Web应用认证体系。
4846 3
|
JSON 安全 数据安全/隐私保护
【Web】token机制
【Web】token机制
|
小程序
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
2605 0
|
安全 API 开发工具
什么是Token
Token是一种用于身份验证和授权的凭证,广泛应用于云计算、API调用、实时音视频通信等场景。它通过加密算法生成,确保请求合法性与服务安全性。Token的核心作用包括身份验证、权限控制、安全保障和无状态化设计。生成方式有控制台、SDK、OpenAPI、JWT和服务端生成等。Token通常包含AppID、UserID、时间戳等字段,并通过哈希算法计算。应用场景涵盖智能语音交互、实时音视频通信、API网关和STS临时访问凭证等。使用时需注意有效期、密钥管理、权限设置和传输安全。
6507 4
|
网络协议 安全
|
人工智能 API
新用户100万token免费额度!阿里云上线DeepSeek-R1满血版
阿里云推出DeepSeek-R1满血版,新用户可享100万免费Token额度。平台支持多种模型,包括671B参数的DeepSeek-R1和通义千问。结合开源工具Chatbox,用户能轻松对接API,体验高性能AI服务。访问[阿里云解决方案](https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_content=g_1000401616)了解更多详情并快速上手。
8102 36
|
SQL 分布式计算 Hadoop
百川终入海 ,一站式海量数据迁移工具 X2Doris 正式发布
在这一过程中,如何将海量历史数据进行高效迁移成为用户的痛点所在。基于这一目标,我们启动了名为“百川入海”的专项开发任务,开发了**一站式海量数据迁移工具 X2Doris**,集自动建表和数据迁移于一体、提供了对 Apache Hive、ClickHouse、Apache Kudu 以及 StarRocks 等多个数据源的支持,全程界面化、可视化操作,仅通过鼠标操作即可完成大规模数据同步至 Doris 中,并提供了极速和稳定的迁移体验。在经过数个月的公开测试和近百家企业的打磨后,今天我们很高兴地宣布, **X2Doris 正式发布、面向所有社区用户免费下载使用**,数据迁移至 Apache Do
905 0
百川终入海 ,一站式海量数据迁移工具 X2Doris 正式发布
|
存储 JSON 安全
深入理解与实践:Token的使用及其在Web应用安全中的重要性
【7月更文挑战第3天】在现代Web应用程序中,Token作为一种关键的安全机制,扮演着维护用户会话安全、验证用户身份的重要角色。本文将深入探讨Token的基本概念、类型、工作原理,并通过实际代码示例展示如何在Web应用中实现Token的生成、验证及应用,以确保数据传输的安全性和用户认证的有效性。
4253 2