nue-extensions/sso-samarinda

SSO integration for Nue Extensions.

1.02 2022-11-12 12:45 UTC

This package is auto-updated.

Last update: 2024-05-12 15:58:22 UTC


README

Integrasi SSO-Samarinda ke aplikasi kamu.

ss-sso-samarinda

Instalasi

  1. Install via Composer :
composer require nue-extensions/sso-samarinda
  1. Munculin menu SSO-Samarinda ini di sidebar Nue :
php artisan nue:import sso-samarinda
  1. 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

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

  1. 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' => [
        ...
    ],
];
  1. 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!