Download the PHP package friezer-85/cas-oauth-laravel without Composer

On this page you can find all versions of the php package friezer-85/cas-oauth-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package cas-oauth-laravel

🔐 CAS OAuth Laravel

Un pont entre un fournisseur OAuth (Discord, Google, GitHub, etc.) et une application utilisant uniquement CAS pour l'authentification.

Ce package permet de transformer n'importe quel provider OAuth en serveur CAS, idéal pour connecter des applications legacy (comme Pronote, Moodle, etc.) à des systèmes d'authentification modernes.


📋 Table des matières


🔧 Prérequis


📦 Installation

1. Créer un nouveau projet Laravel

2. Installer le package

3. Installer un provider Socialite

Selon le provider OAuth que vous souhaitez utiliser :

Discord

GitHub

Google

Autres providers

Voir la liste complète sur SocialiteProviders


⚙️ Configuration

1. Créer l'application OAuth

Pour Discord :

  1. Allez sur https://discord.com/developers/applications
  2. Cliquez sur "New Application"
  3. Donnez un nom à votre application
  4. Allez dans "OAuth2" → "General"
  5. Ajoutez l'URL de redirection :

    (En production, remplacez par votre vrai domaine)

  6. Notez votre Client ID et Client Secret

Pour Google :

  1. Allez sur https://console.cloud.google.com/
  2. Créez un nouveau projet
  3. Activez "Google+ API"
  4. Allez dans "Credentials" → "Create Credentials" → "OAuth client ID"
  5. Ajoutez l'URL de redirection :

  6. Notez votre Client ID et Client Secret

Pour GitHub :

  1. Allez sur https://github.com/settings/developers
  2. Cliquez sur "New OAuth App"
  3. Remplissez les informations :
    • Homepage URL : http://cas.example.com
    • Authorization callback URL : http://cas.example.com/oauth/callback
  4. Notez votre Client ID et Client Secret

2. Configuration du fichier .env

Ajoutez ces lignes à votre fichier .env :

3. Configuration des services autorisés

Éditez le fichier config/services.php et ajoutez :

⚠️ Important : Les points . doivent être échappés avec \. dans les regex, sinon ils matchent n'importe quel caractère.

4. Lancer les migrations

Cette commande créera la table tickets nécessaire au fonctionnement du CAS.


Endpoints disponibles

1. Login CAS (Entrypoint)

Exemple :

Paramètres :

2. Service Validate (Validation de ticket)

Retourne une réponse XML avec les informations de l'utilisateur.

3. SAML Validate (Validation SAML)

Même chose que serviceValidate mais avec le format SAML.

Flow d'authentification complet

Exemple de réponse XML

Après validation d'un ticket, vous recevrez une réponse XML de ce type :


🔌 Providers supportés

Ce package utilise Laravel Socialite et SocialiteProviders.

Providers testés

Provider Package Scopes recommandés
Discord socialiteproviders/discord identify email
GitHub socialiteproviders/github user:email
Google socialiteproviders/google openid,profile,email
Microsoft socialiteproviders/microsoft openid,profile,email

Ajouter un nouveau provider

  1. Installez le package Socialite correspondant
  2. Configurez OAUTH_PROVIDER dans .env
  3. Ajoutez les credentials dans .env
  4. Ajoutez les scopes appropriés

Exemple pour Microsoft :


🐛 Dépannage

Erreur 404 sur /cas/login

Cause : Les routes ne sont pas chargées

Solutions :

  1. Vérifiez que toutes les variables obligatoires sont dans .env
  2. Vérifiez que config/services.php contient la clé 'cas'
  3. Clearez le cache :

  4. Vérifiez les routes chargées :

Erreur "redirect_uri_mismatch"

Cause : L'URL de callback ne correspond pas à celle configurée dans votre application OAuth

Solution : Vérifiez que l'URL dans votre application OAuth est exactement :

Erreur "invalid_client"

Cause : Client ID ou Secret incorrect

Solution : Vérifiez vos credentials dans .env et dans votre application OAuth

Scope "1" au lieu des vrais scopes (Discord)

Cause : Scopes non déclarés

Solution : Déclarez au minimum le scope openid ou identify :

Ticket invalide lors de la validation

Cause : Le ticket a expiré (10 secondes par défaut)

Solution : Les tickets CAS sont à usage unique et expirent rapidement. Assurez-vous que votre application valide le ticket immédiatement après l'avoir reçu.

Service non autorisé

Cause : L'URL du service n'est pas dans la liste des services autorisés

Solution : Ajoutez l'URL dans config/services.php avec la bonne regex :


📝 Variables d'environnement

Obligatoires

Variable Description Exemple
OAUTH_PROVIDER Provider OAuth à utiliser discord
OAUTH_CLIENT_ID ID client OAuth 123456789
OAUTH_CLIENT_SECRET Secret client OAuth abcdef123456

Optionnelles

Variable Description Défaut Exemple
CAS_PROPERTY Propriété utilisée pour le user CAS id email
OAUTH_SCOPES Scopes OAuth demandés openid,profile,email identify email
OAUTH_PARAMS Paramètres OAuth personnalisés ` |prompt=consent`

🔒 Sécurité


📄 Licence

Ce projet est sous licence GNU General Public License v3.0.


⭐ Si ce projet vous a aidé, n'hésitez pas à lui donner une étoile sur GitHub !


All versions of cas-oauth-laravel with dependencies

PHP Build Version
Package Version
Requires laravel/framework Version ^12.0
socialiteproviders/manager Version ^4.8
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package friezer-85/cas-oauth-laravel contains the following files

Loading the files please wait ...