ginskeleton 已经集成了 token中间件 authorization.CheckTokenAuth(),开发者直接调用即可对接口进行鉴权校验,那么如何获取客户端提交的 token值,以及通过 token解析出客户的 userId呢?

获取 token 以及从 token 解析 userId 的主要步骤

只要你在相关的路由之前引用了 token 中间件,那么在校验通过后,自动会把 token 值绑定在上下文,获取方式如下:

  1. // 第一种方式:通过我们封装的快捷函数直接获取当前请求的token对应的用户id(userId)
  2. userId, exists := cur_userinfo.GetCurrentUserId(context)
  3. // 第二种方式, 该方式是最开始我们使用的,建议开发者使用方式一即可
  4. # token 绑定在上下文时的键是在配置文件设置的
  5. # 具体参见 config/config.yml 文件中的 Token.BindContextKeyName 对应的键名
  6. # 这里我们读取键名,然后根据键名获取token就行
  7. tokenKey := variable.ConfigYml.GetString("Token.BindContextKeyName")
  8. # context.MustGet(tokenKey) 根据键名获取 token值,
  9. # 继续断言为token生成时的结构体,可以快速获取 userId
  10. CustomCla, exist := context.MustGet(tokenKey).(my_jwt.CustomClaims)
  11. # 获取userId
  12. fmt.Println("userId:", CustomCla.UserId)

您也可以快速预览在线代码,187 行提供的示例代码