mysa-pro / id-socialite
Mysa ID SSO Socialite Provider for Laravel Applications
Requires
- php: ^8.0
- laravel/socialite: ^5.0
README
Thư viện tích hợp cổng đăng nhập tập trung Mysa ID cho các ứng dụng Laravel thông qua Laravel Socialite.
1. Cài đặt
Chạy lệnh composer để cài đặt gói thư viện:
composer require mysa-pro/id-socialite
2. Cấu hình dịch vụ
Thêm thông số của Mysa ID vào file config/services.php của bạn:
'mysa_id' => [
'client_id' => env('MYSA_ID_CLIENT_ID'),
'client_secret' => env('MYSA_ID_CLIENT_SECRET'),
'redirect' => env('MYSA_ID_REDIRECT_URI'),
'base_url' => env('MYSA_ID_BASE_URL', 'http://id.mysa.pro'),
],
Đồng thời điền các giá trị tương ứng vào file .env:
MYSA_ID_CLIENT_ID="misa_amis_client"
MYSA_ID_CLIENT_SECRET="misa_amis_secret"
MYSA_ID_REDIRECT_URI="https://app.client.com/callback"
MYSA_ID_BASE_URL="http://id.mysa.pro"
3. Cách sử dụng
Tạo Route điều hướng sang SSO và nhận dữ liệu đăng nhập:
use Laravel\Socialite\Facades\Socialite;
// Điều hướng sang cổng SSO
Route::get('/auth/redirect', function () {
return Socialite::driver('mysa_id')->redirect();
});
// Nhận Callback từ cổng SSO
Route::get('/auth/callback', function () {
$mysaUser = Socialite::driver('mysa_id')->user();
// Lấy thông tin người dùng
dd([
'id' => $mysaUser->getId(),
'name' => $mysaUser->getName(),
'email' => $mysaUser->getEmail(),
'phone' => $mysaUser->getRaw()['phone'] ?? null,
'avatar' => $mysaUser->getAvatar(),
]);
});
4. Hiển thị Profile Menu Dropdown (Giao diện Premium)
Thư viện tích hợp sẵn một Helper để render ra khung dropdown quản lý hồ sơ cá nhân với giao diện đồng bộ chuẩn của Mysa ID (bao gồm cả hiển thị initials viết tắt tên trong hình tròn màu vàng nếu chưa tải ảnh đại diện).
Dán dòng code sau vào bất kỳ file Blade nào của ứng dụng khách (ví dụ: trên thanh điều hướng Navbar) để tự động hiển thị menu:
<!-- Chèn mã HTML & Script của Profile Menu -->
{!! \MysaPro\IdSocialite\MysaMenuHelper::render(Auth::user(), [
'logout_url' => route('logout') // Đổi sang route logout của ứng dụng khách nếu cần
]) !!}
Lưu ý: Để hiển thị các ký tự icon và font chữ đẹp mắt, ứng dụng khách nên tích hợp font chữ Google Fonts Inter hoặc tương tự.