gin context和官方context_1 Go语言 系列讲座:Gin+Jwt+casbin RestFul Api 后端一战到底

本文深入探讨了Gin框架的Context,详细介绍了如何创建自定义Context以存储JWT的token ID和用户ID,并通过中间件实现共享。通过讲解`NewUserID`函数,阐述如何将用户ID保存到自定义Context中,并在Gin的处理链中使用。同时,解释了Gin中间件的工作原理,帮助理解其如何增强应用的功能。
摘要由CSDN通过智能技术生成
b6ecdf2288ea4c9c6b46414c499cc637.png

1: Gin Context 详解

标准Context

golang 1.7 中官方给出了Context实现, 尤其在Gin中 其中点是可以链式传递共享变量. 我们只所以先讲Context, 是为了大家便于理解 Gin中如何将jwt 的token ID ,以及用户ID . 保存到 自定义的context中. 或者TraceID. 这样在后面的多个Goroutine中 共享, 另外一个重点是这些都是基于 gin 中间件实现.!这样在工程中非常便利.

自定义扩展Context
import ("context")// 定义全局上下文中的键type (transCtx   struct{}userIDCtx  struct{}traceIDCtx struct{})// NewTrans 创建事务的上下文func NewTrans(ctx context.Context, trans interface{}) context.Context {return context.WithValue(ctx, transCtx{}, trans)}// FromTrans 从上下文中获取事务func FromTrans(ctx context.Context) (interface{}, bool) {v := ctx.Value(transCtx{})return v, v != nil}// NewUserID 创建用户ID的上下文func NewUserID(ctx context.Context, userID strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值