code: func StreamServerInterceptor(authFunc AuthFunc) grpc.StreamServerInterceptor {
  	return func(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
  		var newCtx context.Context
  		var err error
  		if overrideSrv, ok := srv.(ServiceAuthFuncOverride); ok {
  			newCtx, err = overrideSrv.AuthFuncOverride(stream.Context(), info.FullMethod)
  		} else {
  			newCtx, err = authFunc(stream.Context())
  		}
  		if err != nil {
  			return err
  		}
  		wrapped := grpc_middleware.WrapServerStream(stream)
  		wrapped.WrappedContext = newCtx
  		return handler(srv, wrapped)
  	}
  }
docs: // StreamServerInterceptor returns a new unary server interceptors that performs per-request auth.