'protected_pages' => [
'horizon' => [
// ...
'stealth_mode' => true, // Horizon: 404 when unauthenticated
],
'telescope' => [
// ...
'stealth_mode' => false, // Telescope: still shows the passphrase form
],
],
// config/admin-dashboard-guard.php
return [
// The Laravel auth guard used to authenticate the admin.
'guard' => env('ADMIN_DASHBOARD_GUARD', 'admin'),
// Fully-qualified Eloquent model class.
'model' => env('ADMIN_DASHBOARD_MODEL', null),
// Column names on the model.
'passphrase_column' => env('ADMIN_DASHBOARD_PASSPHRASE_COLUMN', 'passphrase'),
'password_column' => env('ADMIN_DASHBOARD_PASSWORD_COLUMN', 'password'),
// Accept a valid Sanctum personal-access token as an alternative to the
// session flow. Requires laravel/sanctum.
'sanctum_support' => env('ADMIN_DASHBOARD_SANCTUM', true),
// Pages to protect — see "Adding a New Protected Page" above.
'protected_pages' => [ /* ... */ ],
];
use SerenityTechnologies\AdminDashboardGuard\Mail\AdminPassphrase;
Mail::to($admin)->send(new AdminPassphrase($passphrase, 'Your Dashboard Passphrase'));
namespace App\Auth;
use Illuminate\Http\Request;
class AuthorizeAdminDashboardAccess
{
public function __invoke(mixed $admin, Request $request, string $tool): bool
{
return $admin && in_array($admin->role, ['SuperAdmin', 'Admin', 'Developer']);
}
}