CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理
作者:作者不详  发布日期:2020/04/01 16:58:43
  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




刷新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



CSFramework.WebApi开发框架用户表、Token表,TokenExpires过期时间定义

每个用户默认Token过期时间(TokenExpires),单位:分钟。

如下图的TokenExpires=60480,若值=0,系统默认取web.config文件的TokenExpireMinutes属性的值。


贴图图片-WebApiToken令牌工作机制Token刷新原理



系统默认的Token过期分钟数:


XML Code:

<!--Token过期分钟数-->
<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)


ASP.NET WebApi快速开发框架|MVC框架|APP微信小程序后端框架|服务端框架-标准版V1.0


上一篇 下一篇