58 lines
2.0 KiB
PHP
58 lines
2.0 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ app()->getLocale() }}">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>OAuth2 Server</title>
|
|
<link rel="icon" type="image/png" href="/images/favicon.png">
|
|
<script>
|
|
// Aplica el tema ANTES del primer paint (evita el flash del tema equivocado).
|
|
// Prioridad: preferencia guardada > prefers-color-scheme del SO.
|
|
(function () {
|
|
var stored = localStorage.getItem('theme');
|
|
var dark = stored ? stored === 'dark' : window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
document.documentElement.classList.toggle('dark', dark);
|
|
})();
|
|
</script>
|
|
@vite(['resources/scss/app.scss', 'resources/js/app.ts'])
|
|
</head>
|
|
<body>
|
|
<div id="app"></div>
|
|
|
|
@php
|
|
$sessionLocale = app()->getLocale();
|
|
// La SPA trae diccionario propio para "es", "en" y "ca".
|
|
$frontendLocale = in_array($sessionLocale, ['es', 'en', 'ca'], true) ? $sessionLocale : 'es';
|
|
@endphp
|
|
<script>
|
|
// Locale de sesión real (es/en/ca) — para preseleccionar el selector de idioma.
|
|
window.__SESSION_LOCALE__ = @json($sessionLocale);
|
|
window.__LOCALE__ = @json($frontendLocale);
|
|
</script>
|
|
|
|
@isset($authToken)
|
|
@php
|
|
$oauthAuthorizePayload = [
|
|
'authToken' => $authToken,
|
|
'csrfToken' => csrf_token(),
|
|
'client' => [
|
|
'id' => $client->id,
|
|
'name' => $client->name,
|
|
],
|
|
'scopes' => collect($scopes)->map(fn ($scope) => [
|
|
'id' => $scope->id,
|
|
'description' => $scope->description,
|
|
])->values(),
|
|
'user' => [
|
|
'name' => $user->name,
|
|
'email' => $user->email,
|
|
],
|
|
];
|
|
@endphp
|
|
<script>
|
|
window.__OAUTH_AUTHORIZE__ = @json($oauthAuthorizePayload);
|
|
</script>
|
|
@endisset
|
|
</body>
|
|
</html>
|