gRPC gateway有没有办法像其他http框架一样配置public route和auth route,比如在echo
框架中可以这样配置
func main() {
e := echo.New()
authRoute := e.Group("/auth", middlewares.Verify)
publicRoute := e.Group("/")
// ...
}
字符串
在grpc-gateway中,我有这样配置。
func run() error {
ctx := context.Background()
ctx, cancel := context.WithCancel(ctx)
defer cancel()
// Register gRPC server endpoint
// Note: Make sure the gRPC server is running properly and accessible
mux := runtime.NewServeMux()
opts := []grpc.DialOption{grpc.WithTransportCredentials(insecure.NewCredentials())}
err := gw.RegisterYourServiceHandlerFromEndpoint(ctx, mux, *grpcServerEndpoint, opts)
if err != nil {
return err
}
// Start HTTP server (and proxy calls to gRPC server endpoint)
return http.ListenAndServe(":8081", mux)
}
型
有没有什么方法可以让mux
为特定的路由提供认证的装饰器函数。并且函数RegisterYourServiceHandlerFromEndpoint
将注册它
authenMux := runtime.NewServeMux()
// make it with authenticated func
//....
err := gw.RegisterYourServiceHandlerFromEndpoint(ctx, authenMux, *grpcServerEndpoint, opts)
型
1条答案
按热度按时间llycmphe1#
我不确定你的具体目标,但如果你只想定制gRPC网关,你可以按照这种方法。或者,你可以将逻辑转移到一个单独的函数。
字符串