我想在Go APP和Java app都可以调用的服务器应用程序上放置。
出于某种原因,有一个cookie身份验证和oAuth机制,因此我想将一个Go应用程序设置为Auth Micro-service以进行身份验证。
由于GRPC是基于HTTP2构建的,所以标头和cookie都在协议上。但我没有找到如何在Rpc发生时继续执行头和cookie,由Go实现,在GitHub上我只发现了JAVA - 标题的实现:
https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/header
为此目的,有人可以给我一些Go实施方向吗?
答案 0 :(得分:7)
gRPC中的标题称为"元数据。"客户只能发送"标题"。服务器可以发送"标头"和#34;预告片。"
您希望使用google.golang.org/grpc/metadata
包和metadata.NewContext()
在客户端发送元数据。使用grpc.SendHeader()
和grpc.SetTrailer()
在服务器端发送元数据。使用grpc.Header()
和grpc.Trailer()
CallOptions
在客户端接收Metadata
。使用metadata.FromContext()
在服务器端接收元数据。
答案 1 :(得分:-1)
无耻插件:支持以自定义ClientInterceptor
的gRPC Java 中的cookie。
通过检查从服务器响应中收到的set-cookie HTTP标头,并通过使用请求中的cookie HTTP标头将cookie转发到服务器来管理cookie。