Instalación y configuración de Laravel Socialite

Instalación y configuración de Laravel Socialite
  • Eborio Linárez
  • February 25, 2018
  • 2018-04-22 02:42:41
  • 0

Lo primero que debemos hacer para comenzar a utilizar Laravel Socialite es instalarlo como dependencia del proyecto y luego configurarlo. La instalación es igual a la de cualquier dependencia, simplemente ejecutamos el siguiente comando en nuestro proyecto:

$ composer require laravel/socialite

Creación de rutas

Básicamente necesitarás dos rutas, una que permitirá redirigir el usuario hacia el proveedor de autenticado Facebook, Twitter, etc. Y la segunda que será el callback donde recibas los datos del usuario una vez se haya autenticado satisfactoriamente.

<?php

// Redirect the user to the provider authentication page
Route::get('auth/{provider}', [
    'as' => 'provider.login',
    'uses' => 'Auth\[email protected]'
]);

// Get the user information from provider
Route::get('auth/{provider}/callback', [
    'as' => 'provider.callback',
    'uses' => 'Auth\[email protected]'
]);

Controlador

Debes crear los dos métodos que serán ejecutados por las rutas definidas anteriormente. Puedes crearlos en el controlador que desees.

**
* Redirect the user to the provider authentication page.
*
* @return \Illuminate\Http\Redirect
*/
public function redirectToProvider($provider)
{
    config(['services.' . $provider . '.redirect' => route('provider.callback', [$provider])]);
    return Socialite::driver($provider)->redirect();
}

/**
* Get the user information from provider.
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback($provider)
{
    $user = Socialite::driver($provider)->user();
}

En el primer método utilizamos el helper config para setear de manera dinámica el callback o ruta de redirección del proveedor utilizado. Este paso es opcional y puedes definir de manera estática la ruta directamente en el archivo de config/services.php.

El método recibirá como parámetro el nombre del proveedor por ejemplo twitter, el cual debe coincidir con el valor que posteriormente registraremos en config/services.php.

En el segundo método (redirección o callback) obtenemos una instancia del usuario. Allí tenemos una serie de atributos y métodos que podemos utilizar para obtener los datos del usuario.

// OAuth2 Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
 
// OAuth Providers
$token = $user->token;
$tokenSecret = $user->tokenSecret;
 
// All Providers
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();

Los tres primeros atributos son retornados cuando utilicemos un proveedor de autenticado OAuth2, aunque el atributo $user->refreshToken no siempre es proveído como se indica en el comentario. Y los siguientes dos están disponibles cuando el proveedor de autenticado utilice OAuth (la versión anterior del estándar de autenticado).

Luego, tenemos a nuestra disposición cinco métodos para obtener información adicional del usuario y siempre están disponibles en cualquier proveedor utilizado.

Para usos más avanzados de Laravel Socialite puedes visitar la documentación oficial a la cual puedes acceder desde los enlaces de interés al final del post. Ahora te invito a ver la siguiente publicación en donde configuraremos el autenticado con Facebook.

Comparte en las redes sociales

Comentarios

Aún no hay comentarios. Sé el primero en comentar.

Deja un comentario