Ce projet permet de proposer pour tous les sites web d'Eirbware d'avoir une API simple pour permettre de connecter une application web au cas de l'ENSEIRB-MATMECA
La connexion au CAS a toujours été pénible, nous avons fait en sorte que ça soit le plus simple possible.
Vous pouvez:
- Protéger des données derrière un mur d'authentification
- Protéger des redirections derrière un mur d'authentification
Toute la configuration se fait dans le fichier auth-config.php
.
En production, ce fichier se trouve dans le dossier nginx/php
.
Pour ajouter des données protégées, définissez les comme suivant dans le
fichier auth-config.php
:
$PROTECTED_DATA = [
"message" =>"Je suis protégé !",
"video" => "https://www.youtube.com/watch?v=xvFZjo5PgG0",
"theme_du_wei" => "wei.eirb.fr"
];
Pour ajouter des liens protégés, définissez les comme suivant dans le
fichier auth-config.php
:
$PROTECTED_LINKS = [
"video" => "https://www.youtube.com/watch?v=xvFZjo5PgG0",
"super_documentation" => "https://docs.eirb.fr",
];
Redirige l'utilisateur vers connect.eirb.fr, afin qu'il puisse se connecter. Signature :
protect.login() -> void
La redirection et la gestion de l'authentification est gérée automatiquement par la librairie.
Retourne les données de l'utilisateur connecté. Signature :
async protect.getData() -> Promise<userData, Error>
Un exemple d'utilisation se trouve dans le fichier src/index.html
de ce
projet.
Redirige vers une url protégée définie
protect.redirect(redirectId: string) -> void
Redirige l'utilisateur de façon à le déconnecter. Signature :
protect.logout() -> void
- Créer un fichier
auth-config.php
(en utilisantauth-config.example.php
)
Vous devrez aussi renseigner les champs suivants :
"server_url" => "<server_url>",
"client_id" => "<clientId>",
"client_secret" => "<clientSecret>",
"redirect_url" => "http://localhost:8080/protect/login.php"
Si vous n'avez pas de quoi les remplir, contactez Eirbware
- Exécutez :
make dev
- Exécutez :
make prod
Cela va créer le dossier demo
, dans lequel une démo (presque) complète sera
générée. Le but de cette version est d'être exécutée en mode rootless
.
- Éditer le fichier
demo/docker-compose.yml
et entrez le port a utiliser
Exemple :
- - PORT:80
+ - 8080:80
- Éditez le fichier
demo/nginx/php/auth-config.php
, vous devrez aussi renseigner les champs suivants :
"client_id" => "<clientId>",
"client_secret" => "<clientSecret>",
Si vous n'avez pas de quoi les remplir, contactez Eirbware