PHPackages                             nodir/laravel-oneid - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. nodir/laravel-oneid

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

nodir/laravel-oneid
===================

O'zbekiston OneID (EGov SSO) OAuth integratsiyasi Laravel uchun. JWT autentifikatsiya, RBAC, auto user registration.

v1.0.0(3mo ago)00MITPHPPHP ^8.2

Since Apr 20Pushed 3mo agoCompare

[ Source](https://github.com/Nodir7393/laravel-oneid)[ Packagist](https://packagist.org/packages/nodir/laravel-oneid)[ RSS](/packages/nodir-laravel-oneid/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Laravel OneID
=============

[](#laravel-oneid)

O'zbekiston OneID (EGov SSO) OAuth integratsiyasi Laravel uchun.

Imkoniyatlar
------------

[](#imkoniyatlar)

- OneID OAuth 2.0 to'liq oqim (authorize → callback → userinfo)
- JWT autentifikatsiya (cookie + bearer token)
- RBAC (rollar va permissionlar)
- Avtomatik user ro'yxatga olish (pending → admin tasdiqlash → active)
- Middleware: `jwt.auth`, `role:admin`, `permission:users.manage`
- `HasRbac` trait — o'z User modelingizga qo'shsa bo'ladi
- Laravel 11, 12, 13 qo'llab-quvvatlanadi

O'rnatish
---------

[](#ornatish)

```
composer require nodir/laravel-oneid
```

Config faylni chiqarish:

```
php artisan vendor:publish --tag=oneid-config
```

Migrationlarni chiqarish:

```
php artisan vendor:publish --tag=oneid-migrations
php artisan migrate
```

.env sozlash
------------

[](#env-sozlash)

```
# OneID
ONEID_CLIENT_ID=your_client_id
ONEID_CLIENT_SECRET=your_client_secret
ONEID_REDIRECT_URI=https://your-api.uz/api/auth/oneid/callback
ONEID_SCOPE=myportal

# JWT
JWT_SECRET=your-secret-min-32-chars
JWT_TTL_MIN=1440
JWT_COOKIE_DOMAIN=.your-domain.uz

# Frontend
FRONT_APP_URL=https://your-frontend.uz
```

Foydalanish
-----------

[](#foydalanish)

### 1. Tayyor routelar (avtomatik)

[](#1-tayyor-routelar-avtomatik)

Paket o'rnatilishi bilan quyidagi routelar ishlaydi:

MethodURLTavsifGET`/api/auth/oneid/url`OneID URL qaytarish (SPA uchun)GET`/api/auth/oneid/redirect`OneID ga 302 redirectGET`/api/auth/oneid/callback`OneID dan qaytishGET`/api/auth/status`User holati (pending ham)GET`/api/me`Joriy user + roles + permissionsPOST`/api/auth/logout`Chiqish### 2. O'z User modelingiz bilan ishlatish

[](#2-oz-user-modelingiz-bilan-ishlatish)

```
// app/Models/User.php
use Nodir\OneId\Models\Traits\HasRbac;
use Nodir\OneId\Enums\UserStatus;

class User extends Authenticatable
{
    use HasRbac; // roles(), hasRole(), hasPermission() qo'shiladi

    protected function casts(): array
    {
        return [
            'status' => UserStatus::class,
        ];
    }
}
```

`config/oneid.php` da modelni ko'rsating:

```
'user_model' => App\Models\User::class,
```

### 3. Middleware ishlatish

[](#3-middleware-ishlatish)

```
// routes/api.php

// JWT tekshirish
Route::middleware('jwt.auth')->group(function () {
    Route::get('/dashboard', DashboardController::class);
});

// Rol tekshirish
Route::middleware(['jwt.auth', 'role:admin'])->group(function () {
    Route::get('/admin/users', UserController::class);
});

// Permission tekshirish
Route::middleware(['jwt.auth', 'permission:users.manage'])->group(function () {
    Route::post('/users/{user}/block', BlockUserController::class);
});
```

### 4. Controller da RBAC

[](#4-controller-da-rbac)

```
public function index(Request $req)
{
    $user = $req->user();

    if ($user->hasRole('admin')) {
        // admin logika
    }

    if ($user->hasPermission('reports.export')) {
        // export ruxsati bor
    }

    $allPermissions = $user->allPermissions()->pluck('slug');
}
```

### 5. Rol berish

[](#5-rol-berish)

```
$user->assignRole('sifat_menejeri', auth()->id());
$user->removeRole('tadbirkor');
$user->activate(); // pending → active
```

Auth oqimi
----------

[](#auth-oqimi)

```
1. Frontend → GET /api/auth/oneid/redirect
2. Brauzer → OneID login sahifasi
3. OneID → callback: /api/auth/oneid/callback?code=xxx
4. Backend → code → token → userinfo → user yaratish (pending)
5. Backend → JWT yaratish → cookie + redirect frontend ga
6. Yangi user → /pending (admin kutish)
7. Admin rol beradi → user active bo'ladi
8. Keyingi kirish → /callback → /dashboard

```

Konfiguratsiya
--------------

[](#konfiguratsiya)

`config/oneid.php` da barcha sozlamalar mavjud:

- `default_user_status` — yangi userlar holati (`pending` yoki `active`)
- `user_model` — o'z User modelingiz
- `routes.enabled` — tayyor routelarni o'chirish (o'zingiz yozish uchun)
- `roles` — seeder uchun rollar ro'yxati

Litsenziya
----------

[](#litsenziya)

[MIT License](LICENSE) - xohlaganingizcha ishlatishingiz mumkin.

---

👨‍💻 Muallif
-----------

[](#‍-muallif)

**Nodir** — Senior PHP Developer, Uzbekistan

- 🌐 GitHub: [@Nodir7393](https://github.com/YOUR_USERNAME)
- 💼 Ish: Laravel, Yii2, Next.js, PostgreSQL

---

⭐ Loyihaga yordam berish
------------------------

[](#-loyihaga-yordam-berish)

Agar paket yoqdi va ishingizga yaragan bo'lsa:

- ⭐ GitHub'da yulduzcha qo'ying
- 🐛 Topilgan bug'lar haqida xabar bering
- 💡 Yangi g'oyalar bilan bo'lishing
- 📢 Do'stlaringiz bilan ulashing

---

 Made with ❤️ in Uzbekistan 🇺🇿

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

96d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/45604122?v=4)[Nodir7393](/maintainers/Nodir7393)[@Nodir7393](https://github.com/Nodir7393)

---

Top Contributors

[![Nodir7393](https://avatars.githubusercontent.com/u/45604122?v=4)](https://github.com/Nodir7393 "Nodir7393 (4 commits)")

---

Tags

jwtlaravelSSOoauthrbacegovУзбекистанoneid

### Embed Badge

![Health badge](/badges/nodir-laravel-oneid/health.svg)

```
[![Health](https://phpackages.com/badges/nodir-laravel-oneid/health.svg)](https://phpackages.com/packages/nodir-laravel-oneid)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k30.2M151](/packages/laravel-cashier)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M136](/packages/laravel-pulse)[hasinhayder/tyro

Tyro - The ultimate Authentication, Authorization, and Role &amp; Privilege Management solution for Laravel 12 &amp; 13

6765.1k6](/packages/hasinhayder-tyro)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k21](/packages/fleetbase-core-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
