Skip to content
/ aksk Public

实现http的中间件, 用于认证客户端请求和校验请求内容

License

Notifications You must be signed in to change notification settings

qingtao/aksk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aksk 实现 http 的中间件, 用于认证客户端请求和校验请求内容

PkgGoDev

HTTP 头部

名称 说明
x-auth-access-key 客户端的访问密钥
x-auth-timestamp 请求发起时的时间戳,单位: 秒
x-auth-signature 请求的签名
x-auth-body-hash 请求的 body 的 hash 值

签名方法

  1. 假设哈希算法为sha256, 编码格式为base64;
  2. 取出客户端访问密钥: x-auth-access-key;
  3. 取当前的时间戳: x-auth-timestamp;
  4. 如果请求的body非空, 对body计算sha256的值, 并编码为base64得到:x-auth-body-hash;
  5. x-auth-access-key,x-auth-timestamp,x-auth-body-hash 按字符串排序, 使用空字符作为分隔符拼接成字符串s;
  6. 取出客户端访问密钥对应的secret_key, 对s计算hmac_sha256的值, 并编码为base64, 得到 x-auth-signature;

About

实现http的中间件, 用于认证客户端请求和校验请求内容

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages