nue-extensions / sso-samarinda
SSO integration for Nue Extensions.
Requires
- php: >=7.0.0
- novay/nue: ^3.0
- zefy/php-simple-sso: ^1.0
Requires (Dev)
- phpunit/phpunit: ~6.0
README
Integrasi SSO-Samarinda ke aplikasi kamu.
Instalasi
- Install via Composer :
composer require nue-extensions/sso-samarinda
- Munculin menu SSO-Samarinda ini di sidebar Nue :
php artisan nue:import sso-samarinda
- Update
table users
php artisan migrate --path=vendor/nue-extensions/sso-samarinda/database/migrations/2014_10_12_000000_alter_users_table.php
Perintah ini akan menyisipkan field baru dengan nama uid
dalam tabel users
kamu. Kamu bisa menambahkan field uid
secara manual tanpa harus menggunakan perintah ini.
Konfigurasi
Tambahin konfigurasi extension berikut di dalam file konfigurasi config/nue.php
kayak gini:
'extensions' => [ 'sso-samarinda' => [ // Arahkan kemana Anda akan tuju setelah login berhasil 'redirect_to' => '/home', // Pilih guard auth default yang dipakai 'guard' => 'web', // Beberapa parameter yang dibutuhkan untuk broker. Bisa ditemukan di // https://sso.samarindakota.go.id 'server_url' => env('SSO_SERVER_URL', null), 'broker_name' => env('SSO_BROKER_NAME', null), 'broker_secret' => env('SSO_BROKER_SECRET', null), // Tentukan Model User yang dipakai 'model' => '\App\Models\User' ], ],
Penggunaan
- Setelah melakukan konfigurasi diatas, kamu bisa menambahkan 3 opsi baru dalam file
env
kamu :
SSO_SERVER_URL=https://sso.samarindakota.go.id SSO_BROKER_NAME= SSO_BROKER_SECRET=
SSO_SERVER_URL
berisi URI dari SSO Samarinda. SSO_BROKER_NAME
dan SSO_BROKER_SECRET
harus diisi sesuai dengan data aplikasi yang didaftarkan di https://sso.samarindakota.go.id.
- Kustom Middleware bawaan SSO-Samarinda :
Apabila dalam implementasinya Anda ingin melakukan penyimpanan sesi atau melakukan manipulasi pada models User, Anda juga bisa melakukan custom pada middleware yang telah disediakan. Contohnya:
a) Buat Middleware Baru
$ php artisan make:middleware SSOAutoLogin
b) Extend Default Middleware ke Custom Middleware
<?php namespace App\Http\Middleware; use Nue\SSOSamarinda\Http\Middleware\SSOAutoLogin as Middleware; use App\Models\User; class SSOAutoLogin extends Middleware { /** * Manage your users models as your default credentials * * @param Broker $response * @return \Illuminate\Http\RedirectResponse */ public function handleLogin($response) { $user = User::updateOrCreate(['uid' => $response['data']['id']], [ 'name' => $response['data']['name'], 'email' => $response['data']['email'], 'password' => 'default', ]); auth()->login($user); return; } }
c) Edit Kernel.php
protected $middlewareGroups = [ 'web' => [ ... // \Nue\SSOSamarinda\Http\Middleware\SSOAutoLogin::class, \App\Http\Middleware\SSOAutoLogin::class, ], 'api' => [ ... ], ];
- Implementasi pada
Views
a) Login
<a href="{{ route('sso.authorize') }}">Login</a>
b) Logout
<a href="{{ route('sso.logout') }}">Logout</a>
c) Manual Usage (Optional)
Untuk penggunaan secara manual, Anda bisa menyisipkan potongan script berikut kedalam fungsi login dan logout pada class controller Anda.
protected function attemptLogin(Request $request) { $broker = new \Nue\SSOSamarinda\Service\Broker; $credentials = $this->credentials($request); return $broker->login($credentials['username'], $credentials['password']); } public function logout(Request $request) { $broker = new \Nue\SSOSamarinda\Service\Broker; $broker->logout(); $this->guard()->logout(); $request->session()->invalidate(); return redirect('/'); }
Lisensi
SSO-Samarinda ini dikembangin dengan Lisensi MIT. Artinya kamu bebas menggunakannya baik untuk kepentingan pribadi maupun komersil. Enjoy!