getAuthorizationUrlWithPkce method
Generate Authorization URL with PKCE parameters
Implementation
Uri getAuthorizationUrlWithPkce({
required List<String> scopes,
String? state,
String? codeVerifier,
String? redirectUri,
}) {
final queryParams = <String, String>{
'response_type': 'code',
'client_id': config.clientId,
'scope': scopes.join(' '),
'state': state ?? _generateState(),
};
if (redirectUri != null) {
queryParams['redirect_uri'] = redirectUri;
}
// Add PKCE parameters
if (codeVerifier != null) {
final codeChallenge = generateCodeChallenge(codeVerifier);
queryParams['code_challenge'] = codeChallenge;
queryParams['code_challenge_method'] = codeChallengeMethod;
}
final uri = Uri.parse(config.authorizationEndpoint);
return uri.replace(queryParameters: queryParams);
}