aslnbxrz/myid-socialite

MyID provider for Laravel Socialite

dev-main 2025-09-30 13:28 UTC

This package is auto-updated.

Last update: 2025-09-30 13:28:22 UTC


README

MyID provider for SocialiteProviders.

Docs: MyID Web SDK

Requirements

  • PHP 8.1+
  • Laravel 10/11+
  • laravel/socialite
  • socialiteproviders/manager

Installation

composer require aslnbxrz/myid-socialite

Configuration

Add to config/services.php:

'myid' => [
    'client_id'     => env('MYID_CLIENT_ID'),
    'client_secret' => env('MYID_CLIENT_SECRET'),
    'redirect'      => env('MYID_REDIRECT_URI'),
    // Optional (defaults shown):
    'base_url'      => env('MYID_BASE_URL', 'https://myid.uz'),
    'scope'         => env('MYID_SCOPE', 'openid profile email'),
],

Add to your .env

MYID_CLIENT_ID=your-client-id
MYID_CLIENT_SECRET=your-client-secret
MYID_REDIRECT_URI=https://your-app.com/auth/myid/callback
# Optional:
# MYID_BASE_URL=https://myid.uz
# MYID_SCOPE="openid profile email"

Laravel 11+ Event Listener

use Illuminate\Support\Facades\Event;
use SocialiteProviders\Manager\SocialiteWasCalled;
use Aslnbxrz\MyID\Provider;

Event::listen(function (SocialiteWasCalled $event) {
    $event->extendSocialite('myid', Provider::class);
});

Usage

use Laravel\Socialite\Facades\Socialite;

// Redirect to MyID
Route::get('/auth/myid/redirect', function () {
    return Socialite::driver('myid')->scopes(['openid','profile','email'])->redirect();
});

// Callback
Route::get('/auth/myid/callback', function () {
    /** @var \Aslnbxrz\MyID\MyIDUser $user */
    $user = Socialite::driver('myid')->user();

    $id    = $user->getId();
    $name  = $user->getName();
    $email = $user->getEmail();
    $phone = $user->getPhone();
});

Endpoints

  • Authorize: https://myid.uz/oauth/authorize
  • Token: https://myid.uz/oauth/token
  • Userinfo: https://myid.uz/oauth/userinfo

License

MIT