getAuthorizationUrl method
Get authorization URL
Implementation
@override
Future<String> getAuthorizationUrl({
required List<String> scopes,
String? state,
Map<String, String>? additionalParams,
}) async {
final metadata = await _discoverMetadata();
final pkce = _generatePkce();
// Store code verifier for later use
_codeVerifier = pkce['code_verifier']!;
final params = <String, String>{
'response_type': 'code',
'client_id': config.clientId,
'code_challenge': pkce['code_challenge']!,
'code_challenge_method': config.codeChallengeMethod,
if (config.redirectUri != null) 'redirect_uri': config.redirectUri!,
if (scopes.isNotEmpty) 'scope': scopes.join(' '),
if (state != null) 'state': state,
...?additionalParams,
};
final uri = Uri.parse(
metadata.authorizationEndpoint,
).replace(queryParameters: params);
return uri.toString();
}