<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
victoryoalli / laravel-multitenancy-impersonate example snippets
return [
'ttl' => 60, // Token lifetime in seconds
'redirect_path' => '/home', // Default redirect after impersonation
'auth_guard' => 'web', // Authentication guard to use
'rate_limit' => [
'max_attempts' => 5, // Max token validation attempts
'decay_minutes' => 1, // Minutes until attempts reset
],
];
use VictorYoalli\MultitenancyImpersonate\Traits\CanImpersonate;
class ImpersonateController
{
use CanImpersonate;
public function store(Request $request)
{
$tenant = Tenant::find($request->get('tenant_id'));
$redirect_url = "https://{$tenant->domain}/admin";
// Create impersonation token in tenant's database
$impersonate = $this->createToken($tenant, auth()->user(), $redirect_url);
// Redirect to tenant's impersonation endpoint
$tenant_url = "https://{$tenant->domain}/impersonate";
return redirect("{$tenant_url}/{$impersonate->token}");
}
}
use VictorYoalli\MultitenancyImpersonate\Traits\CanImpersonate;
class TenantImpersonateController
{
use CanImpersonate;
public function __invoke(Request $request, string $token)
{
$user = User::firstOrFail(); // Or find user by any criteria
return $this->impersonate($token, $user);
}
}