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生成时的结构体,可以快速获取 userIdCustomCla, exist := context.MustGet(tokenKey).(my_jwt.CustomClaims)# 获取userIdfmt.Println("userId:", CustomCla.UserId)
