nue-extensions/sso-samarinda 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nue-extensions/sso-samarinda

最新稳定版本:1.02

Composer 安装命令:

composer require nue-extensions/sso-samarinda

包简介

SSO integration for Nue Extensions.

README 文档

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!

统计信息

  • 总下载量: 15
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-11-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固