Instalación y configuración de Laravel Socialite

Instalación y configuración de Laravel Socialite
  • Eborio Linárez
  • February 25, 2018
  • 2018-04-09 20:42:28
  • 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

Puedes utilizar el controlador para login proveído por la instalación de Laravel o utilizar el controlador que desees. Simplemente debes crear los siguientes métodos dentro de él:

**
* 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();
}

/**
* Obtain 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 configuración.

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.

Tenemos una serie de atributos y métodos que podemos utilizar a la hora de 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.

Luego, tenemos a 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