grpc 拦截器【 go 和 asp.net core的实现】

在 asp.ner core 5.0 Grpc HttpApi 和jwt的集成 和跨域【https双向认证】和  Go Grpc Jwt身份认证和Gateway集成以及HTTPS双向认证 我们 获取用户名都是通过方法的,在这里我们来用拦截器实现一下。

GO

大类可分为两种 RPC 方法,与拦截器的对应关系是:普通方法:一元拦截器(grpc.UnaryInterceptor);流方法:流拦截器(grpc.StreamInterceptor)。

1.拦截器的实现   我们来看看他的实现。在\gogrpcjwt\api\authtoken.go文件我们增加方法 AuthInterceptor【我们的值 是通过context来存储的】


/*
ctx context.Context:请求上下文
req interface{}:RPC 方法的请求参数
info *UnaryServerInfo:RPC 方法的所有信息
handler UnaryHandler:RPC 方法本身
*/
func AuthInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
	userName := CheckAuth(ctx)
	log.Printf("gRPC method: %s, %v", info.FullMethod, req)
	newCtx := ctx
	if len(userName) &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值