PHPackages                             unisa/sso - 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. unisa/sso

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

unisa/sso
=========

Utility Authentication with SSO-UNISA

02PHP

Since Jan 5Pushed 2y agoCompare

[ Source](https://github.com/danurwijayanto/sso-unisa)[ Packagist](https://packagist.org/packages/unisa/sso)[ RSS](/packages/unisa-sso/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

SSO-unisa
=========

[](#sso-unisa)

Library PHP untuk memudahkan aplikasi menggunakan fasilitas login SSO UNISA.

Instalasi di Laravel
--------------------

[](#instalasi-di-laravel)

1. Install Composer di Laptop/PC anda
2. Install library *composer* dengan menjalankan perintah berikut di terminal *projejct* anda:

    ```
     composer install

    ```
3. Install library *unisa/SSO* dengan menjalankan perintah berikut di terminal *project* anda:

    ```
     composer require unisa/sso

    ```

Penggunaan
----------

[](#penggunaan)

### 1. Menghilangkan Namespace

[](#1-menghilangkan-namespace)

Agar kode anda terlihat rapi dan membuat kode anda tidak buruk, anda dapat menghilangkan *namespace* dengan menambahkan perintah di header *controller* anda:

```
use SSO\SSO;

```

Setelah itu untuk pemanggilan hanya menggunakan perintah seperti ini:

```
SSO::$command();

```

### 2. Otentikasi

[](#2-otentikasi)

```
SSO::authenticate();

```

Pemanggilan ini akan me-*redirect* browser ke login SSO. Jika otentikasi berhasil maka fungsi ini akan mengembalikan nilai `true` dan meneruskan nya ke aplikasi yang membutuhkan otentikasi tersebut.

### 3. Mendapatkan detail user

[](#3-mendapatkan-detail-user)

```
SSO::getUser();

```

Fungsi ini akan mengembalikan object `stdClass` yang memiliki detail dari user yang berhasil diotentikasi. Potongan kode nya sebagai berikut:

```
$user = SSO::getUser();
echo $user->email                   // menampilkan email dari user
echo $user->first_name             // menampilkan nama lengkap dari user

```

### 3. Memeriksa otentikasi

[](#3-memeriksa-otentikasi)

```
SSO::check();

```

Fungsi ini digunakan untuk mengecek apakah user pernah berhasil diotentikasi atau belum.

### 4. Logout

[](#4-logout)

```
SSO::logout();

```

Pemanggilan ini akan mengakhiri otentikasi user.

```
SSO::logout(url('http://unisayogya.ac.id'));

```

Pemanggilan ini akan mengakhiri otentikasi user dan me-*redirect* ke halaman dashboard unisa.

Kedua fungsi diatas digunakan untuk menerapkan Single Logout.

Koneksi dengan Aplikasi
-----------------------

[](#koneksi-dengan-aplikasi)

### Login

[](#login)

```
public function signing_process() {
    if(SSO::authenticate()) //mengecek apakah user telah login atau belum
    {
        if(SSO::check()) {
            $check = User::where('username', SSO::getUser()->username)->first(); //mengecek apakah pengguna SSO memiliki username yang sama dengan database aplikasi
            if(!is_null($check)) {
                Auth::loginUsingId($check->id_pengguna); //mengotentikasi pengguna aplikasi
                session()->flash('success', 'You are logged in!');
                return redirect()->route('index');
            } else {
                alert()->error('Data pengguna tidak ditemukan, silahkan hubungi administrator.')->html(true);
                return redirect()->route('auth.login'); //mengarahkan ke halaman login jika pengguna gagal diotentikasi oleh aplikasi
            }
        }
    } else {
        return redirect()->route('auth.logout'); //me-*redirect* user jika otentikasi SSO gagal, diarahkan untuk mengakhiri sesi login (jika ada)
    }
}

```

Fungsi ini digunakan untuk mengecek otentikasi SSO pada aplikasi

### Logout

[](#logout)

```
public function logout() {
    if(Auth::check()) { //mengecek otentikasi pada aplikasi
        SSO::cookieClear(); //If destroy cookie laravel
        SSO::ciCookieClear(); //If destroy cookie codeigniter4
        Session::flush(); //Destroy Session
        Auth::logout(); //Destroy Auth
        alert()->success('Berhasil logout'); //Alert
        return redirect('auth/login')->with('pesan', 'berhasil logout'); //Redirect to login page
    } else {
        return redirect('auth/login'); //menampilkan halaman login
    }
}

```

Fungsi ini digunakan untuk mengakhiri sesi otentikasi pada SSO dan Aplikasi

### Middleware

[](#middleware)

```
if( SSO::check() || Auth::check() ) {
    return $next($request);
} else {
    return redirect()->route('auth.logout');
}

```

Fungsi ini digunakan untuk mengecek otentikasi pada SSO atau bawaan laravel

Penggunaan di Codeigniter 4 menggunakan Composer
------------------------------------------------

[](#penggunaan-di-codeigniter-4-menggunakan-composer)

Untuk penggunaan di Codeigniter 4 terdapat perubahan di folder `vendor/apereo/phpcas`. Ekstrak file `phpcas.zip` dalam folder `vendor/unisa/sso` kemudiaan salin dan letakkan ke dalam folder `vendor/apereo/phpcas`.

Thanks to
---------

[](#thanks-to)

1. PHP CAS
2. RistekCSUI/SSO

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor1

Top contributor holds 93.8% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2cf898c09e59af6670543b19a4e64c7ee834152285f01ff10b6d2b8aeb436bd5?d=identicon)[danurwijayanto](/maintainers/danurwijayanto)

---

Top Contributors

[![muhammadikhsan94](https://avatars.githubusercontent.com/u/62091684?v=4)](https://github.com/muhammadikhsan94 "muhammadikhsan94 (30 commits)")[![danurwijayanto](https://avatars.githubusercontent.com/u/12890105?v=4)](https://github.com/danurwijayanto "danurwijayanto (2 commits)")

### Embed Badge

![Health badge](/badges/unisa-sso/health.svg)

```
[![Health](https://phpackages.com/badges/unisa-sso/health.svg)](https://phpackages.com/packages/unisa-sso)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)

PHPackages © 2026

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