32 lines
797 B
PHP
32 lines
797 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use App\Events\UserClient;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\Routing\Controller;
|
||
|
|
use Illuminate\View\View;
|
||
|
|
|
||
|
|
class CoolUIController extends Controller
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Handle an incoming request for Cool UI client.
|
||
|
|
*/
|
||
|
|
public function __invoke(Request $request): View
|
||
|
|
{
|
||
|
|
// Generate SSO ticket
|
||
|
|
$request->user()->auth_ticket = str()->uuid()->toString();
|
||
|
|
$request->user()->save();
|
||
|
|
|
||
|
|
// Build Cool UI URL with SSO ticket (served from same origin)
|
||
|
|
$url = sprintf('/cool-ui/?%s', http_build_query([
|
||
|
|
...$request->query(),
|
||
|
|
'sso' => $request->user()->auth_ticket,
|
||
|
|
]));
|
||
|
|
|
||
|
|
UserClient::dispatch($request->user());
|
||
|
|
|
||
|
|
return view('client', compact('url'));
|
||
|
|
}
|
||
|
|
}
|