Login Redes Sociales

En la consola del terminal:
composer require laravel/socialite

Crear un controlador para las redes sociales:
php artisan make:controller SocialAuthController

En config/services.php:
'facebook' => [
        'client_id' => 'xxx',
        'client_secret' => 'xxx',
        'redirect' => 'http://localhost/LARAVEL/laravel_edc/public/back_facebook',
    ],

'twitter' => [
        'client_id' => 'xxx',
        'client_secret' => 'xxx',
        'redirect' => 'http://localhost/LARAVEL/laravel_edc/public/back_twitter',
    ],

'linkedin' => [
        'client_id' => 'xxx',
        'client_secret' => 'xxx',
        'redirect' => 'http://localhost/LARAVEL/laravel_edc/public/back_linkedin',
    ],


En config/app.php:
En providers:
Laravel\Socialite\SocialiteServiceProvider::class,
En aliases:
'Socialite' => Laravel\Socialite\Facades\Socialite::class,

IMPORTANTE: Aunque tu IDE te ponga error al incluir Socialite no hacer caso, funciona perfectamente.

Crear tu App en los developers de Facebook, Twitter y Linkedin (no olvidar la ruta del callback)

En routes/web.php:
Route::get('/login_facebook', 'SocialAuthController@loginFacebook');
Route::get('/back_facebook', 'SocialAuthController@callbackFacebook');

Route::get('/login_twitter', 'SocialAuthController@loginTwitter');
Route::get('/back_twitter', 'SocialAuthController@callbackTwitter');

Route::get('/login_linkedin', 'SocialAuthController@loginLinkedin');
Route::get('/back_linkedin', 'SocialAuthController@callbackLinkedin');

En SocialAuthController.php:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;

class SocialAuthController extends Controller
{
    public function loginFacebook() {
        return Socialite::driver('facebook')->redirect();
    }

    public function callbackFacebook() {
        $user = Socialite::driver('facebook')->user();
        print_r($user);exit;
    }

    public function loginTwitter() {
        return Socialite::driver('twitter')->redirect();
    }

    public function callbackTwitter() {
        $user = Socialite::driver('twitter')->user();
        print_r($user);exit;
    }

    public function loginLinkedin() {
        return Socialite::driver('linkedin')->redirect();
    }

    public function callbackLinkedin() {
        $user = Socialite::driver('linkedin')->user();
        print_r($user);exit;
    }
}


IMPORTANTE: En https://developers.facebook.com si vamos a probarlo desde localhost es configuración->Información básica.

Pero si ya se va a hacer desde un servidor real con https hay que rellenar también Inicio de sesión de Facebook -> Configuración -> URL de devolución de llamada de retirada de autorización.

En Facebook puedes hacer todas las pruebas que quieras con tu usuario pero para probar ya con otro tendrás q pasar la App de "En desarrollo" a "En Producción". Más información en el minuto final del vídeo: https://www.youtube.com/watch?v=OtXQJWK_MXs

No hay comentarios:

Publicar un comentario