grpc / grpc-dart

The Dart language implementation of gRPC.
https://pub.dev/packages/grpc
Apache License 2.0
860 stars 271 forks source link

Question: How to implement a ClientInterceptor with async body #710

Open payam-zahedi opened 6 months ago

payam-zahedi commented 6 months ago

I want to have an interceptor to pass the JWT to the headers of the request call

this is the basic class that I want to have


class AuthInterceptor extends ClientInterceptor {
  AuthInterceptor({
    required this.findAccessToken,
  });

  final Future<String> Function() findAccessToken;

  @override
  ResponseFuture<R> interceptUnary<Q, R>(
    ClientMethod<Q, R> method,
    Q request,
    CallOptions options,
    ClientUnaryInvoker<Q, R> invoker,
  ) {
    throw UnimplementedError();
  }
}

The problem is I can not use the async/await modifiers because the return type is ResponseFuture.

How can I achieve this?