providerRedirectUrl static method
Implementation
static String providerRedirectUrl({
required String provider, // now just a string
required String redirectPath,
String? state,
}) {
switch (provider.toLowerCase()) {
case 'github':
final url = Uri.https('github.com', '/login/oauth/authorize', {
'client_id': config.githubClientId,
'redirect_uri': '${config.redirectBase}$redirectPath',
'scope': 'user:email',
'allow_signup': 'true',
if (state != null) 'state': state,
});
return url.toString();
case 'google':
final url = Uri.https('accounts.google.com', '/o/oauth2/v2/auth', {
'client_id': config.googleClientId,
'redirect_uri': '${config.redirectBase}$redirectPath',
'response_type': 'code',
'scope': 'openid email profile',
if (state != null) 'state': state,
});
return url.toString();
default:
throw UnimplementedError('Provider "$provider" not implemented');
}
}