A tour of gRPC:09 - gRPC Interceptor 拦截器

本文介绍了如何在gRPC中使用拦截器实现服务端和客户端的中间件功能,包括日志记录、身份验证和授权。通过创建用户实体、用户存储、JWT管理器以及认证服务,实现了用户登录并返回JWT令牌的功能。服务端和客户端拦截器分别用于校验请求和添加令牌。在测试中,展示了拦截器如何根据用户权限控制操作的访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇中,我们体验了 gRPC 的反射和拦截器功能,并尝试使用evans 客户端对接口进行了测试。在 本篇中,我们将体验 拦截器功能,拦截器就像一个中间件功能。

​拦截器可以在server和client上添加,服务端拦截器会在实际方法被调用前先执行,它有多种用途,例如:日志记录,跟踪,速率限制,身份验证和授权。同样,客户端拦截器会在实际调用发起前先执行。

接下来我们来测试一下

1. 在 server/main.go 上添加 一个简单的一元拦截器做测试、一个流拦截器做测试

​2. 运行服务端和客户端测试

​可以看到 server 上添加的 unary 拦截器成功运行了,接下来我们不妨做点更有意思的!

  • 实践一下!

我们在我们的系统上增加一个用户登录并返回JWT访问令牌的方式

1. 在service包下添加 User.go 实体

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值