mysa-pro/id-socialite

Mysa ID SSO Socialite Provider for Laravel Applications

Maintainers

Package info

gitlab.com/tringuyen2710/mysa-id-socialite

Issues

pkg:composer/mysa-pro/id-socialite

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.4 2026-05-28 08:37 UTC

This package is not auto-updated.

Last update: 2026-05-28 08:39:24 UTC


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ự.