# Session原理介绍

里面用到了两个技术,一个是AES加密,一个是JSON

# 生成token的原理

  • 当调用 session.CreateToken函数时,函数内部会将参数转化成 JSON字符串,然后在后面拼接上一个最后有效时间
  • 将上一步 得到的字符串进行AES加密,并转成base64返回

# 还原token的原理

  • 当调用 session.RestoreToken函数时,函数内部会将token进行base64解码,得到一个[]byte类型的加密数据
  • 将上一步 得到的加密数据 进行AES解密,就会得到最开始的JSON串+最后有效时间
  • 切割上一步的 字符串得到一个JSON串 和 一个时间戳,判断当前时间戳 是否大于 这个时间戳,如果大于就说明已经失效了,直接返回提示信息即可
  • 如果小于这个时间戳,那么将JSON串 转化成 struct

# 有效期原理

  • 加密的时候 将Timeout+当前时间戳,得到一个结果,将结果拼接到JSON后面
  • 解密之前,判断 上一步拼在后面的时间戳 是否 大于当前时间戳

返回刚才的文档