Authentification via les réseaux sociaux
Introduction
Package d'authentification via les réseaux sociaux pour Bow Framework. Ce package utilise thephpleague/oauth2-client comme wrapper.
Actuellement, il supporte les fournisseurs suivants :
- Gitlab
- Github
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 une 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"
}
La configuration des autres fournisseurs suit 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 défini
*
* @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 une route
Définissez la route qui sera utilisée pour les actions d'appel Soauth :
$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.