initOAuth method
Implementation
void initOAuth({
required OAuthConfiguration configuration,
}) {
final redirectUrl =
originUrl() != null ? originUrl()! : configuration.redirectUrl;
baseUrl = configuration.baseUrl;
onSuccessAuth = configuration.onSuccessAuth;
super.init(
redirectUrls: baseUrl != null ? [redirectUrl, baseUrl!] : [redirectUrl],
onError: configuration.onError,
onCancel: configuration.onCancel,
);
if (kIsWeb) {
codeVerifier = OAuthWebAuth.instance.restoreCodeVerifier() ??
OAuthWebAuth.instance.generateCodeVerifier();
}
authorizationCodeGrant = oauth2.AuthorizationCodeGrant(
configuration.clientId,
Uri.parse(configuration.authorizationEndpointUrl),
Uri.parse(configuration.tokenEndpointUrl),
secret: configuration.clientSecret,
codeVerifier: codeVerifier,
delimiter: configuration.delimiter,
basicAuth: configuration.basicAuth ?? true,
httpClient: configuration.httpClient,
);
initialUri = authorizationCodeGrant.getAuthorizationUrl(
Uri.parse(redirectUrl),
scopes: configuration.scopes,
);
initialUri = initialUri.replace(
queryParameters: Map.from(initialUri.queryParameters)
..addAll({
'state': const Base64Encoder.urlSafe()
.convert(DateTime.now().toIso8601String().codeUnits),
'nonce': const Base64Encoder.urlSafe().convert(
DateTime.now().millisecondsSinceEpoch.toString().codeUnits),
if (configuration.loginHint != null)
'login_hint': configuration.loginHint,
if (configuration.promptValues?.isNotEmpty ?? false)
'prompt': configuration.promptValues!.join(' '),
}));
}