code: func UnaryServerInterceptor(authFunc AuthFunc) grpc.UnaryServerInterceptor {
  	return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
  		var newCtx context.Context
  		var err error
  		if overrideSrv, ok := info.Server.(ServiceAuthFuncOverride); ok {
  			newCtx, err = overrideSrv.AuthFuncOverride(ctx, info.FullMethod)
  		} else {
  			newCtx, err = authFunc(ctx)
  		}
  		if err != nil {
  			return nil, err
  		}
  		return handler(newCtx, req)
  	}
  }
docs: // UnaryServerInterceptor returns a new unary server interceptors that performs per-request auth.