token method

  1. @override
Future<String> token()
override

Implementation

@override
Future<String> token() {
  final c = _cached;
  if (c != null && c.expiresAt.difference(DateTime.now()) > _skew) {
    return Future.value(c.token);
  }
  // Collapse concurrent refreshes into one request.
  return _inflight ??= _fetchGrant().then((g) {
    _cached = g;
    return g.token;
  }).whenComplete(() => _inflight = null);
}