CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理
CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理
令牌 Token
在计算机身份认证中是令牌(暗号)的意思,一般作为邀请、登录以及安全认证使用。Token其实说的通俗点就是“暗号”,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。
随着互联网行业快速的发展逐渐的演变成了前后端分离,若项目中需要做登录的话,那么token成为前后端唯一的一个凭证。
Token最大的特点是系统临时分配的一组数据,可以设定过期时间,可以追踪令牌使用过程,可以通过令牌控制用户禁止或允许使用业务系统。
Token生成原理
用户登录业务系统后,后台程序给当前用户分配一个Token序号,如GUID32位的字符串,添加到Token缓存管理器。后台服务器有个时钟管理和维护Token的过期时间,将已过期的Token清除出队列。

Token在WebApi接口的作用
用户登录业务系统后,后台程序给当前用户分配一个Token序号,并返回给前端。前端系统通过Token作为暗号与服务端通信。前端调用WebApi接口,传入Token以及请求参数即可与后端服务通信。
CSFramework.WebApi开发框架进行Token验证
C# Code:
//校验用户令牌(Token)
if (command.IsValidateToken && command.ClientData is IUserRequestClientLogin)
{
IUserRequestClientLogin user = command.ClientData as IUserRequestClientLogin;
//验证Token,若令牌无效,抛出异常
WebApiGate.CheckToken(user.UserID, user.Token);
//刷新当前用户最新的Token过期时间
TokenProvider.RefreshTokenTime(user.Token);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
if (command.IsValidateToken && command.ClientData is IUserRequestClientLogin)
{
IUserRequestClientLogin user = command.ClientData as IUserRequestClientLogin;
//验证Token,若令牌无效,抛出异常
WebApiGate.CheckToken(user.UserID, user.Token);
//刷新当前用户最新的Token过期时间
TokenProvider.RefreshTokenTime(user.Token);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
刷新Token(更新Token的活动时间)
Token有两种状态:
闲置状态:用户登录后,不进行任何操作。等待Token超时。
活动状态:用户登录后进行功能操作,前端程序调用WebApi接口即时刷新Token的当前访问时间。Token不会过期。若用户停止操作,即将进入闲置状态。
前端调用WebApi接口,必须传入UserID/Token参数,并通过UserID刷新Token的活动时间。
C# Code:
/// <summary>
/// 刷新当前用户最新的Token过期时间
/// </summary>
/// <param name="userID"></param>
public static void RefreshTokenTime(string userID)
{
if (userID.ToStringEx() != "")
{
if (_data.ContainsKey(userID))
{
lock (_data)
{
_data[userID].TS = DateTime.Now;
}
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 刷新当前用户最新的Token过期时间
/// </summary>
/// <param name="userID"></param>
public static void RefreshTokenTime(string userID)
{
if (userID.ToStringEx() != "")
{
if (_data.ContainsKey(userID))
{
lock (_data)
{
_data[userID].TS = DateTime.Now;
}
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
CSFramework.WebApi开发框架用户表、Token表,TokenExpires过期时间定义
每个用户默认Token过期时间(TokenExpires),单位:分钟。
如下图的TokenExpires=60480,若值=0,系统默认取web.config文件的TokenExpireMinutes属性的值。

系统默认的Token过期分钟数:
XML Code:
<!--Token过期分钟数-->
<add key="TokenExpireMinutes" value="5" />
//来源:C/S框架网 | www.csframework.com | QQ:23404761
<add key="TokenExpireMinutes" value="5" />
//来源:C/S框架网 | www.csframework.com | QQ:23404761
ASP.NET WebApi快速开发框架|APP后端框架-标准版V1.0
适用开发:快速搭建APP、B/S、C/S、微信小程序、公众号、Web站点等后端应用服务程序。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
参考文档:
CSFramework.WebApi后端框架Token令牌体系架构与应用详解
WebApi后端框架Token身份认证,Api接口Token验证
CSFramework.WebApi令牌管理器(Token Provider)实现添加、删除、刷新令牌过期控制
CSFramework.WebApi后端框架 | 用户请求类型 (User Request)参数模型|C/S开发框架
SystemController – 系统管理控制器 | CSFramework.WebApi后端框架|C/S开发框架
CSFramework.WebApi后端框架 | 系统配置 | app.config|C/S开发框架
客户端测试程序(CS.WebApi.Tester)| CSFramework.WebApi后端框架|C/S开发框架
CSFramework.WebApi后端框架Log日志配置详解
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
CSFramework.WebAPI 后端框架系统架构图|C/S开发框架
CSFramework.WebApi后端框架 | 开发者账号(公钥ApiKey与私钥SecretKey)|C/S开发框架
CSFramework.WebApi后端框架提供两种接口调用方式|C/S开发框架
GateController – 系统安全门禁控制器 | CSFramework.WebApi后端框架|C/S开发框架
FileController – 文件管理控制器 | CSFramework.WebApi后端框架|C/S开发框架
ImageController – 图片资源控制器 | CSFramework.WebApi后端框架|C/S开发框架
VS解决方案与目录结构 | CSFramework.WebApi后端框架|C/S开发框架
CSFramework.WebApi后端框架Token令牌体系架构与应用详解
WebApi后端框架Token身份认证,Api接口Token验证
CSFramework.WebApi令牌管理器(Token Provider)实现添加、删除、刷新令牌过期控制
CSFramework.WebApi后端框架 | 用户请求类型 (User Request)参数模型|C/S开发框架
SystemController – 系统管理控制器 | CSFramework.WebApi后端框架|C/S开发框架
CSFramework.WebApi后端框架 | 系统配置 | app.config|C/S开发框架
客户端测试程序(CS.WebApi.Tester)| CSFramework.WebApi后端框架|C/S开发框架
CSFramework.WebApi后端框架Log日志配置详解
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
CSFramework.WebAPI 后端框架系统架构图|C/S开发框架
CSFramework.WebApi后端框架 | 开发者账号(公钥ApiKey与私钥SecretKey)|C/S开发框架
CSFramework.WebApi后端框架提供两种接口调用方式|C/S开发框架
GateController – 系统安全门禁控制器 | CSFramework.WebApi后端框架|C/S开发框架
FileController – 文件管理控制器 | CSFramework.WebApi后端框架|C/S开发框架
ImageController – 图片资源控制器 | CSFramework.WebApi后端框架|C/S开发框架
VS解决方案与目录结构 | CSFramework.WebApi后端框架|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服


