1. Go to this page and download the library: Download mixu/sso-auth library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// Hanya admin dan super_admin yang bisa akses
Route::middleware(['role:admin,super_admin'])->group(function () {
Route::get('/admin', ...);
});
// Hanya area portal yang bisa akses
Route::middleware(['access_area:portal'])->group(function () {
Route::get('/portal', ...);
});
use Mixu\SSOAuth\Services\SSOAuthService;
use Illuminate\Support\Facades\Schedule;
Schedule::command('security:stats --days=7')
->hourly()
->withoutOverlapping();
// Di controller
$user = request()->session()->get('sso_user');
echo $user['id']; // User ID dari SSO
echo $user['name']; // User name
echo $user['email']; // User email
print_r($user['roles']); // Array of roles
print_r($user['access_areas']); // Array of access areas
// Di Blade template
{{ Auth::guard('web')->user()?->name }}
// atau
{{ session('sso_user.name') }}
// Middleware: validate.session.ip
Route::middleware(['sso.auth', 'validate.session.ip'])->group(function () {
// Routes di sini dilindungi dari session hijacking
});
// Generate authorize URL
$url = $sso->getAuthorizeUrl($state);
// Generate CSRF state
$state = $sso->generateState();
// Exchange code untuk token
$tokens = $sso->exchangeCodeForToken($code);
// Get user info dari SSO
$user = $sso->getUser($accessToken);
// Refresh token
$tokens = $sso->refreshToken($refreshToken);
// Logout dari SSO
$result = $sso->logout($accessToken);
// Check token validity
$valid = $sso->isTokenValid($accessToken);
// Check if configured
$configured = $sso->isConfigured();
// Get last error
$error = $sso->getLastError();
// Check brute force attempts
$isBruteForce = $security->checkBruteForceAttempts($ip, $minutes, $threshold);
// Get IP mismatch patterns
$ips = $security->checkIPMismatchPatterns($userId, $minutes);
// Log security event
$security->logSecurityEvent($eventData);
// Detect anomalies
$anomalies = $security->detectAnomalies($userId);
// Get security statistics
$stats = $security->getSecurityStats($days);
// Unit test example
public function test_sso_login()
{
$sso = app(SSOAuthService::class);
$this->assertTrue($sso->isConfigured());
$state = $sso->generateState();
$this->assertNotEmpty($state);
}
bash
php artisan migrate
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.