Aplicación que funciona como plantilla y package para la autenticación federada para la universidad de colima Se proveen las screens necesarias para un login con el sistema SIMPLESAML de la universidad de colima
El repositorio en la versión 2.x.x fue migrado a la versión 3.7.x de flutter y 2.18.x de dart, así como el upgrade de los paquetes usados.
Revisa compatibilidades antes de hacer un upgrade.
Provee de una pantalla antes de WayfWebViewScreen con la capacidad de recibir un title (requerido) y un logo (opcional) que serán mostrados la parte superior y central de la pantalla respectivamente.
En este ejemplo se usó el titulo y logo para la aplicación de control de asistencias.
Provee el widget que se conecta a la federación, recibe un callback que es llamado al recibir los datos de la federación
Una pantalla provisional para mostrar la información obtenida en el login con la posibilidad de cerrar la sesión actual.
Se exporta las clases abstractas de UdcColors con los colores usados en el diseño y pueden ser usados para otras aplicaciones.
Aumenta la minSdkVersion a la 19
defaultConfig {
minSdkVersion 19
}
Puedes usar este repositorio desde github o accediendo a este link
Este repositorio es una aplicación completa que puedes correr ejecutando el proyecto desde el archivo main.dart.
Contiene los iconos para android y una aplicación de entrada en app.dart
flutter run
En tu pubspec.yaml agrega la siguiente dependencia
wayf_login_udc:
git:
url: https://github.com/Universidad-de-Colima/demo-flutter-login-federado.git
ref: main
Importa el paquete en donde necesites usar los widget WayfWebViewScreen WayfLoginButtonScreen
import 'package:wayf_login_udc/wayf_login_udc.dart';
WayfLoginButtonScreen(
/// Alamana el resultado en tu estado, también puedes guardarlo en tu almacenamiento local para retomarlo después
onWayfResolve: (data) => _onWayfResolve(data, context),
/// Este método es opcional para verificar si existe una sesión previa
///
/// Si no se provee, se asume que no existe una sesión previa, si se provee deberá hacer cambios para la integración con la biometria del
/// dispositivo, revisa el siguiente enlace https://pub.dev/packages/local_auth
loadExistingLogin: () async {
final data = await _storage.read(key: 'loginData'); /// En el ejemplo se usa flutter_secure_storage para guardar la información
if (data == null) return null;
return WayfLoginModel.fromJson(
json.decode(data) as Map<String, dynamic>,
);
},
/// Verifica si una sesión es válida, en este ejemplo se valida que la sesión no haya expirado en un día
validateExistingLogin: (data) {
final now = DateTime.now();
final sessionCreated = data.sessionCreated;
final expires = sessionCreated.copyWith(
day: sessionCreated.day + 1,
);
return now.isBefore(expires);
},
title: Image.asset(
UdcAssets.logoAsistencias,
),
);
Occasionally run
dart format --fix -l 80 lib
flutter pub run import_sorter:main
Or if you're using fvm
dart format --fix -l 80 lib
fvm flutter pub run import_sorter:main
This commands are in the script format.sh, in UNIX-like systems just run
chmod +x ./format.sh
./format.sh
Federación de Identidades de la Universidad de Colima
- Federación UCOL - Página oficial