oAuth2 static method

FreshLink<OAuth2Token> oAuth2({
  1. required TokenStorage<OAuth2Token> tokenStorage,
  2. required RefreshToken<OAuth2Token?> refreshToken,
  3. required ShouldRefresh shouldRefresh,
  4. TokenHeaderBuilder<OAuth2Token?>? tokenHeader,
})

A GraphQL Link which handles manages an authentication token automatically.

A constructor that returns a Fresh interceptor that uses the OAuth2Token token, the standard token class and define the` tokenHeader as 'authorization': '${token.tokenType} ${token.accessToken}'

final freshLink = FreshLink(
  tokenStorage: InMemoryTokenStorage(),
  refreshToken: (token, client) {
    // Perform refresh and return new token
  },
);
final graphQLClient = GraphQLClient(
  cache: InMemoryCache(),
  link: Link.from([freshLink, HttpLink(uri: 'https://my.graphql.api')]),
);

Implementation

static FreshLink<OAuth2Token> oAuth2({
  required TokenStorage<OAuth2Token> tokenStorage,
  required RefreshToken<OAuth2Token?> refreshToken,
  required ShouldRefresh shouldRefresh,
  TokenHeaderBuilder<OAuth2Token?>? tokenHeader,
}) {
  return FreshLink<OAuth2Token>(
    refreshToken: refreshToken,
    tokenStorage: tokenStorage,
    shouldRefresh: shouldRefresh,
    tokenHeader: tokenHeader ??
        (token) {
          return {
            'authorization': '${token?.tokenType} ${token?.accessToken}',
          };
        },
  );
}