oAuth2 static method
FreshLink<OAuth2Token>
oAuth2({
- required TokenStorage<
OAuth2Token> tokenStorage, - required RefreshToken<
OAuth2Token?> refreshToken, - required ShouldRefresh shouldRefresh,
- 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}',
};
},
);
}