Skip to content

Laravel Socialite

Nguồn gốc: Bản dịch từ Laravel Socialite

Giới thiệu (Introduction)

Laravel Socialite cung cấp interface đơn giản, biểu cảm cho OAuth authentication với Facebook, Twitter/X, LinkedIn, Google, GitHub, GitLab và Bitbucket.

GỢI Ý

Adapter cho các nền tảng khác có trong Socialite Providers do cộng đồng duy trì.

Cài đặt (Installation)

bash
composer require laravel/socialite

Cấu hình (Configuration)

Cấu hình credentials trong config/services.php:

php
'github' => [
    'client_id' => env('GITHUB_CLIENT_ID'),
    'client_secret' => env('GITHUB_CLIENT_SECRET'),
    'redirect' => 'http://example.com/callback-url',
],

Authentication

Routing

Cần 2 route: redirect đến OAuth provider và callback nhận response:

php
use Laravel\Socialite\Facades\Socialite;

Route::get('/auth/redirect', function () {
    return Socialite::driver('github')->redirect();
});

Route::get('/auth/callback', function () {
    $user = Socialite::driver('github')->user();

    // $user->token
    // $user->getName()
    // $user->getEmail()
});

Optional Parameters

Thêm tham số vào OAuth request:

php
Socialite::driver('google')
    ->scopes(['read:user', 'public_repo'])
    ->redirect();

Access Scopes

Yêu cầu scope bổ sung.

Retrieving User Details

Sau khi callback, lấy thông tin user:

php
$user = Socialite::driver('github')->user();

$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();
$user->token;
$user->refreshToken;
$user->expiresIn;

Retrieving User From Token

Lấy thông tin user từ token có sẵn:

php
$user = Socialite::driver('github')->userFromToken($token);

Stateless Authentication

Bỏ qua session state:

php
$user = Socialite::driver('google')->stateless()->user();