CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌)
CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌)
扫一扫加微信
WebApi应用场景图
WebApi客户端分类
一、APP应用:包括Android、iOS移动端APP开发应用。
二、微信后台程序:服务号、企业微信、微信小程序。
三、Web应用:Web站点,门户网站。
四、Winform应用(C/S架构系统):ERP/MES/CRM/MIS等管理应用系统对接。
WebApi客户端调用接口方式(接口安全)
主要分为两大类:
一、数字签名方式
采用数字签名方式调用WebApi接口,客户端程序必须能进行代码加密,程序加壳。
数字签名是根据公钥和私钥对数据加密的,对客户端程序进行代码加密,程序加壳确保私钥不被泄露。
客户端采用数字签名方式调用WebApi接口的系统有:APP、服务号、企业微信、微信小程序、Winform 系统,如:ERP/MES/CRM/MIS等管理应用系统对接。
数字签名方式接口参数模型:
C# Code:
ModelRequestAction mr = new ModelRequestAction();
mr.Timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
mr.Operation = op;
mr.Action = actionID;
mr.ApiKey = PrivateData.apikey;//公钥
mr.Data = dataEncrypt ? CryptoHelper.DESEncrypt(data, PrivateData.DES_Key, PrivateData.DES_iv) : data;
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data + PrivateData.secret + mr.Timestamp);//Sign数字签名
mr.DataIsEncrypted = dataEncrypt;
mr.ClientData = clientData;
//来源:C/S框架网 | www.csframework.com | QQ:23404761
mr.Timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
mr.Operation = op;
mr.Action = actionID;
mr.ApiKey = PrivateData.apikey;//公钥
mr.Data = dataEncrypt ? CryptoHelper.DESEncrypt(data, PrivateData.DES_Key, PrivateData.DES_iv) : data;
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data + PrivateData.secret + mr.Timestamp);//Sign数字签名
mr.DataIsEncrypted = dataEncrypt;
mr.ClientData = clientData;
//来源:C/S框架网 | www.csframework.com | QQ:23404761
二、Token令牌
采用令牌方式调用WebApi接口,客户端程序必须先登录系统获得令牌。
Web程序(Web站点,门户网站)必须采用动态Token方式调用WebApi接口。
Web端是采取明文调用接口方式,以私钥进行数字签名的方式在Web客户端不可使用!
令牌方式调用接口参数模型:
C# Code:
//动态令牌方式传入WebApi接口的参数模型
ModelRequestToken M = new ModelRequestToken
{
Action = 102322,
Data = "my data",
Timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"),//时间戳
Token = "000F20E0-059D-4C9E-BE86-9B1BD45FB20B",//令牌
UserID = "16052307113076068",//用户账号
Operation = "",
ClientData = "",
};
//来源:C/S框架网 | www.csframework.com | QQ:23404761
ModelRequestToken M = new ModelRequestToken
{
Action = 102322,
Data = "my data",
Timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"),//时间戳
Token = "000F20E0-059D-4C9E-BE86-9B1BD45FB20B",//令牌
UserID = "16052307113076068",//用户账号
Operation = "",
ClientData = "",
};
//来源:C/S框架网 | www.csframework.com | QQ:23404761
扫一扫加微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网