Aller au contenu principal
Version: Canary 🚧

🔐 Soauth

Package d'authentification via les réseaux sociaux pour Bow Framework. Ce package utilise le package thephpleague/oauth2-client pour faire un wrapper.

Actuellement, il supporte le fournisseur suivant :

  • Facebook
  • Gitlab
  • Github
  • Google
  • Instagram
  • Linkedin

Installation

Pour installer ce paquet, vous devez utiliser composer. Nous vous recommandons de l'installer globalement.

composer require bowphp/soauth

Configuration

Après l'installation Dans votre fichier .env.json, vous devez définir les informations d'accès au fournisseur comme suit:

Configuration facebook

Vous pouvez créer la nouvelle application facebook à l'adresse https://developers.facebook.com/fr.

FACEBOOK_CLIENT_ID=client_id
FACEBOOK_CLIENT_SECRET=client_secret
FACEBOOK_REDIRECT_URI=redirect_uri

Configuration gitlab

GITLAB_CLIENT_ID=client_id
GITLAB_CLIENT_SECRET=client_secret
GITLAB_REDIRECT_URI=redirect_uri

Configuration github

GITHUB_CLIENT_ID=client_id
GITHUB_CLIENT_SECRET=client_secret
GITHUB_REDIRECT_URI=redirect_uri

Ainsi de suite, la configuration des autres providers suivent la même approche.

Utilisation

Pour utiliser le package, vous devez importer la configuration du package :

return [
\Bow\Soauth\SoauthConfiguration::class,
...
];

Nous considérons le contrôleur suivant :

namespace App\Controllers;

use App\Controller\Controller;
use Bow\Soauth\Soauth;

class SoauthController extends Controller
{
/**
* Redirection vers le fournisseur define
*
* @param string $provider
* @return mixed
*/
public function redirect($provider)
{
return Soauth::redirect($provider, $scope);
}

/**
* Gérer les informations oauth
*
* @param string $provider
* @return mixed
*/
public function handle($provider)
{
$user = Soauth::resource($provider);
}
}

Ajouter un itinéraire

Définissez la route qui utilisera pour les actions d'appel soauth:

routes/app.php
$app->get('/oauth/:provider/redirect', 'SoauthController::redirect');
$app->get('/oauth/:provider/callback', 'SoauthController::handle');

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.