# GoogleRidesharingDriver Framework Reference

# GMTDAuthorization

    @protocol GMTDAuthorization <NSObject>

Protocol used to provide authorization tokens for gRPC calls. These tokens
give access to the Fleet Engine service accounts.

The implementation should ensure that a valid authorization token is always available.
The authorization token should have a minimum lifetime of 5 minutes to allow for requests to
complete. Therefore, the authorization token must automatically renew expiring tokens and
minimize the number of token refreshes by re-using a token until its lifetime nears its end.

Implementations of this protocol must be thread-safe.
- `


  ### [-fetchTokenWithContext:completion:](https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/reference/ios/Protocols/GMTDAuthorization#/c:objc(pl)GMTDAuthorization(im)fetchTokenWithContext:completion:)


  ` Called by the SDK to fetch a JWT. The implementation must assume that this method
  may be invoked from arbitrary queues.

  #### Declaration

  Swift

      func fetchToken(with authorizationContext: https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/reference/ios/Classes/GMTDAuthorizationContext.html?) async throws -> String

  Objective-C

      - (void)fetchTokenWithContext:
                  (nullable https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/reference/ios/Classes/GMTDAuthorizationContext.html *)authorizationContext
                         completion:
                             (nonnull https://developers.google.com/maps/documentation/mobility/driver-sdk/scheduled/reference/ios/Type-Definitions/GMTDAuthTokenFetchCompletionHandler.html)completion;

  #### Parameters

  |---|---|
  | ` authorizationContext ` | The context of the target authorization token. |
  | ` completion ` | Must be called asynchronously, but can be called from any queue. |