屏蔽某网站怎么做网站专题页
2026/4/18 16:14:34 网站建设 项目流程
屏蔽某网站怎么做,网站专题页,旅游网站开发实现开题报告,俄罗斯网站设计概述 本文档详细分析了基于Spring Boot的双Token认证(Access Token + Refresh Token)结合Cookie的完整认证方案。该方案通过Access Token进行短期访问控制,通过Refresh Token进行长期会话维持,同时利用Cookie机制实现安全的令牌传递。 核心组件 1. Token类型说明 Access…概述本文档详细分析了基于Spring Boot的双Token认证(Access Token + Refresh Token)结合Cookie的完整认证方案。该方案通过Access Token进行短期访问控制,通过Refresh Token进行长期会话维持,同时利用Cookie机制实现安全的令牌传递。核心组件1. Token类型说明Access Token (访问令牌):短期有效(默认30分钟),用于API访问认证Refresh Token (刷新令牌):长期有效(默认24小时),用于获取新的Access TokenSession ID (会话ID):唯一会话标识,与Refresh Token绑定,且在Access Token的JWT中绑定sessionId用于校验。sessionId不仅配合RefreshToken组合使用,也会在每次请求对AccessToken校验时进行绑定校验,确保令牌与会话的一致性。2. 存入Cookie中的内容说明Access Token Cookie (AT):Name:ATPath:设置为白名单路径(如/file/downFile,/file/downFiles等)用途:仅在这些特定路径下浏览器才会自动携带Cookie场景:主要用于文件下载接口,解决img标签等无法自定义Header的问题Refresh Token Cookie (RT):Name:RTPath:设置为/auth/refreshToken用途:仅在刷新Token接口时浏览器自动携带安全:限制了Cookie的发送范围,避免在其他接口暴露Session ID Cookie (SID):Name:SIDPath:设置为/用途:所有接口都会自动携带,用于标识会话安全:配合RefreshToken一起使用,增强安全性注意:Cookie的Path设置应基于浏览器请求的URI路径,而非Spring Boot Controller的映射路径。在通过Nginx等反向代理暴露的系统内部接口时,最终浏览器请求的path可能与Controller path不同。3. 数据存储sys_auth_refresh_token 表:存储Refresh Token的哈希值和会话信息,这里仅存储hash值可以避免RT数据泄漏带来风险。CREATETABLE`sys_auth_refresh_token`(`id`bigintNOTNULLCOMMENT'主键',`session_id`varchar(128)NOTNULLCOMMENT'会话唯一标识',`user_id`varchar(64)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNOTNULLCOMMENT'token所属用户Id',`token_hash`varchar(255)NOTNULLCOMMENT'Refresh Token 的 BCrypt 哈希值',`login_user_agent`varchar(500)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'登录的UserAgent信息',`login_channel`varchar(50)DEFAULTNULLCOMMENT'登录渠道:web/app/wechat等',`ip_address`varchar(45)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'登录时的客户端IP',`created_at`datetimeNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间',`expires_at`datetimeNOTNULLCOMMENT'过期时间,每次刷新Token时重置过期时间',`revoked`tinyint(1)DEFAULT'0'COMMENT'是否已被撤销',`last_used_at`datetimeDEFAULTNULLCOMMENT'最后使用时间',`use_count`intDEFAULT'0'COMMENT'使用次数,初始为0',`remark`varchar(128)DEFAULTNULLCOMMENT'备注',PRIMARYKEY(`id`),UNIQUEKEY`session_id`(`session_id`),KEY`idx_user_id`(`user_id`),KEY`idx_session_id`(`session_id`),KEY`idx_token_hash`(`token_hash`),KEY`idx_expires_at`(`expires_at`));完整流程时序图

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询