providerRedirectUrl static method

String providerRedirectUrl({
  1. required String provider,
  2. required String redirectPath,
  3. String? state,
})

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');
  }
}