browserAuth static method

Future browserAuth({
  1. required BuildContext? context,
  2. required Uri authEndpoint,
  3. required Uri tokenEndpoint,
  4. required String callbackUrlScheme,
  5. required String clientID,
  6. required String redirectURL,
  7. String? scopes,
})

Implementation

static Future<dynamic> browserAuth({
  required BuildContext? context,
  required Uri authEndpoint,
  required Uri tokenEndpoint,
  required String callbackUrlScheme,
  required String clientID,
  required String redirectURL,
  String? scopes,
}) async {
  try {
    final scopeArray = scopes?.split(" ");

    final result = await OAuthWebScreen.start(
      context: context!,
      configuration: OAuthConfiguration(
        authorizationEndpointUrl: authEndpoint.toString(),
        tokenEndpointUrl: tokenEndpoint.toString(),
        // clientSecret: clientSecret,
        clientId: clientID,
        redirectUrl: redirectURL,
        scopes: scopeArray,
        // promptValues: const ['login'],
        // loginHint: 'xxx@mail.com',
        onCertificateValidate: (certificate) {
          ///This is recommended
          /// Do certificate validations here
          /// If false is returned then a CertificateException() will be thrown
          return true;
        },
        // contentLocale: Locale('es'),
        // refreshBtnVisible: false,
        // clearCacheBtnVisible: false,
        // textLocales: {
        //   ///Optionally texts can be localized
        //   OAuthWebView.backButtonTooltipKey: 'Ir atrás',
        //   OAuthWebView.forwardButtonTooltipKey: 'Ir adelante',
        //   OAuthWebView.reloadButtonTooltipKey: 'Recargar',
        //   OAuthWebView.clearCacheButtonTooltipKey: 'Limpiar caché',
        //   OAuthWebView.closeButtonTooltipKey: 'Cerrar',
        //   OAuthWebView.clearCacheWarningMessageKey: '¿Está seguro que desea limpiar la caché?',
        // },
      ),
    );

    if (result is AuthorizationException) {
      // If click "Back" button on the web page, result is AuthorizationException
      return null;
    }

    return result;
  } catch (err) {
    return null;
  }
}