ginskeleton 已经集成了 token
中间件 authorization.CheckTokenAuth()
,开发者直接调用即可对接口进行鉴权校验,那么如何获取客户端提交的 token
值,以及通过 token
解析出客户的 userId
呢?
获取 token 以及从 token 解析 userId 的主要步骤
只要你在相关的路由之前引用了 token 中间件,那么在校验通过后,自动会把 token 值绑定在上下文,获取方式如下:
// 第一种方式:通过我们封装的快捷函数直接获取当前请求的token对应的用户id(userId)
userId, exists := cur_userinfo.GetCurrentUserId(context)
// 第二种方式, 该方式是最开始我们使用的,建议开发者使用方式一即可
# token 绑定在上下文时的键是在配置文件设置的
# 具体参见 config/config.yml 文件中的 Token.BindContextKeyName 对应的键名
# 这里我们读取键名,然后根据键名获取token就行
tokenKey := variable.ConfigYml.GetString("Token.BindContextKeyName")
# context.MustGet(tokenKey) 根据键名获取 token值,
# 继续断言为token生成时的结构体,可以快速获取 userId
CustomCla, exist := context.MustGet(tokenKey).(my_jwt.CustomClaims)
# 获取userId
fmt.Println("userId:", CustomCla.UserId)