Giao diện
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/socialiteCấ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();