特定端点的 Grpc 编写拦截器

Grpc Writing Interceptors for Specific Endpoint

我用 Golang 实现了一个 grpc 服务器。该服务器有多个端点,但对于其中一个端点,我想实现一个拦截器,该拦截器将在继续请求之前检查身份验证令牌的有效性。我知道如何实现一个拦截器,当请求到达任何一个 grpc 端点时,该拦截器将 运行,但是我怎样才能让我的拦截器只针对一个特定端点 运行s?

对于那些感兴趣的人,我能够通过检查拦截器的 grpc.UnaryServerInfo 参数找到请求的方法。有一个名为 FullMethod 的属性可以为您提供请求的端点。

您可以获取方法名称并在通过拦截器获取请求时进行比较。您的自定义拦截器将有一个名为 ServerInfo 的组件,这将帮助您过滤从哪个方法被调用。基于此,您可以过滤掉您的身份验证端点