arnouxor/oauthosor

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (v0.0.27) of this package.

SystĂšme d'authentification universel pour Codeigniter 3

Maintainers

👁 Arnouxor

Package info

github.com/arnouxor/oauthosor

pkg:composer/arnouxor/oauthosor

Statistics

Installs: 131

Dependents: 0

Suggesters: 0

Stars: 3

Open Issues: 0

v0.0.27 2018-03-12 09:14 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Unknown License 4954252bab503b1e8af988080cf5a1a66ca6689c


README

Euh... pour faire simple :

  • Vous en avez marre de galĂ©rer avec l'identification de votre site !?
  • Vous utilsez le framework Codeigniter ?
  • Vous rĂȘvez d'avoir un server oauth2 pour gĂ©rer vos connexions sans avoir le moindre travail Ă  faire ?

Oauthosor est lĂ  pour vous !

En fait, c'est simple, Oauthosor a pour but de vous offrir un module d'authentification complet permettant de :

  • GĂ©rer une connexion web basique (avec un serveur oauth2 derriĂšre)
  • GĂ©rer l'inscription des utilisateurs
  • GĂ©rer le changement de mot de passe de vos utilisateurs
  • Permettre une connexion Ă  votre site avec les boutons : facebook, twitter, google, linkedin...
  • GĂ©rer des accĂšs Ă  votre API (et proposer vous mĂȘme un bouton : "Se connecter avec mon site")

Installation

  • Installez oauthosor avec composer sur votre projet :

     composer require arnouxor/oauthosor
    
  • Copier le fichier config/oauthosor_sample.php et collez-le dans votre rĂ©pertoire config : config/oauthosor.php. Voir plus bas pour bien comprendre ce fichier de conf.

  • CrĂ©ez le fichier controllers/OauthosorClient et collez le code suivant Ă  l'intĂ©rieur

     <?php
    
     defined('BASEPATH') or exit('No direct script access allowed');
     require FCPATH.'vendor/arnouxor/oauthosor/controllers/OauthosorClient.php';
    
  • RĂ©peter l'opĂ©ration pour les fichiers controllers/OauthosorWeb et controllers/OauthosorServer en changeant bien sĂ»r le chemin dans le code que tu colles dedans

  • Crééz un MY_Controller dans votre rĂ©pertoire core et coller Ă  la fin les deux includes suivants :

     require FCPATH.'vendor/arnouxor/oauthosor/core/MY_Public_API.php';
     require FCPATH.'vendor/arnouxor/oauthosor/core/MY_Private_API.php';
    
  • Lancer database/oauthosor.sql pour crĂ©er la base de donnĂ©es

  • Vous avez besoin d'une mĂ©thode qui chargera certains messages d'erreurs (mauvais utilisateur par exemple). Voir le paramĂštre loadLanguage dans le fichier de conf. Ce fichier chargera les mots suivants :

     $lang["bad_user_pass_combinaison"] = "Mauvais identifiants de connexion !";
     $lang["user_already_exists"] = "Mauvais identifiants de connexion !";
     $lang["reActivate_ok"] = "L'email de confirmation vous a été envoyé de nouveau";
     $lang["prepare_change_password_ok"] = "Un email vous a été envoyé pour effectuer votre changement de mot de passe";
    
  • Pour le moment il faut aussi crĂ©er un fichier libraries/MY_Form_validation avec le contenu suivant (c'est pour le restserver créé par Maltyxx)

     defined('BASEPATH') OR exit('No direct script access allowed');
     require(FCPATH.'vendor/arnouxor/oauthosor/libraries/MY_Form_validation.php');
    
  • Checkez l'url http://tonsite.dev/oauthosorweb/testing pour avoir l'interface de test. Attention il faut crĂ©er des petites choses en BDD pour que tout fonctionne correctement

Le fichier config/oauthosor.php

Ce fichier est trÚs important car il vous permet de définir les choses suivantes :

  • l'url de base de votre site (HybridAuth qui est utilisĂ© en a besoin)
  • Les identifiants de votre propre application privĂ©e (dĂ©finis dans la base oauthosor.oauth_client. C'est trĂšs important car comme je vous l'ai dit on utilise oauth2 pour se connecter mĂȘme en connexion web, du coup on place notre site comme une application privĂ© de lui-mĂȘme :) )
  • le nom du cookie pour la connexion web persistante
  • Les fonctions de callback (si vous voulez faire des traitements supplĂ©mentaire un peu dans tous les sens du genre un log de connexion, un envoi de mail particulier pendant l'inscription de l'utilisateur...)
  • Vos clĂ©s / secrets des diffĂ©rentes applications que vous crĂ©erez sur facebook, google... pour pouvoir offrir le bouton de connexion.

Oauthosor web

Bon bah c'est tout ce qui touche à la gestion d'une connexion / inscription sur un site. Pour cela on se place comme une application au scope privé de notre server oauth2. Ici il n'y a pas grand chose à configurer. Il faut juste voir la table oauth_clients en BDD et comprendre que maintenant tes utilisateurs sont dans oauth_users. Bien sûr il y a un user_id permettant de lier les utilisateurs de ton site avec ceux de la BDD oauthosor.

En fait il suffira de poster tes formulaires de connexion aux adresses suivantes :

Oauthosor Server

En ce qui concerne le serveur Oauth2 c'est assez compliqué à prendre en main donc ne pas hésiter à consulter cette page trÚs bien détaillée pour comprendre son fonctionnement

https://zestedesavoir.com/articles/1616/comprendre-oauth-2-0-par-lexemple/#2-les-roles

L'idée est qu'en base de données tu ais des clients (oauth_clients) à qui tu donnes des grant_type et des scope particuliers.

Pour oauthosor j'ai choisi d'avoir deux scopes : public pour les applications d'autres développeur qui souhaite taper sur ton site sous forme d'API et private pour ta propre application qui tape sur ton site (avec oauthosorweb) mais qui a le droit de choper bien plus d'information.

En BDD tu verras :

  • MY_PRIVATE_APP_DEV ton site pour faire simple, il a le droit de choper plein de truc donc son scope est private
  • MY_PRIVATE_APP_PROD ton site en prod
  • MY_PUBLIC_APP_DEV correspondant Ă  ton appli de dev public (comme si c'Ă©tait celle d'un autre dev c'est pour tester l'api)
  • MY_PUBLIC_APP Une appli de dev en prod

Tout cela tu peux le changer, c'est juste une config de base qui permet aux tests de fonctionner.

TODO

Tu veux aider à améliorer le truc ?? Super alors voilà ce qu'on peut faire :

  • CrĂ©er une page de statistique d'accĂ©s et de gĂ©nĂ©ration de token
  • Interface permettant de crĂ©er des clients ou des users qui auront accĂšs Ă  l'api
  • Pouvoir rĂ©voquer des refresh token (et donc dĂ©connecter des utilisateurs)

Oauthosor Client

Permet d'utiliser les boutons facebook connect et autres. On utilise HybridAuth derriĂšre (https://github.com/hybridauth/hybridauth)

Quand un utilsateur se connecte et qu'on ne l'a pas cela le créé en BDD. Il sera identifié grùce à son facebook_id par exemple.

TODO

- Ajouter tous les boutons sur la vue de test

Je pense que la doc est loin d'ĂȘtre complĂšte car je n'ai pas trop le temps de m'y consacrer franchement mais n'hĂ©sitez pas Ă  revenir vers moi pour toute information.

;)