Offer «Entrar con Pireon» on the panel's login page
Some checks failed
Tests / lint (push) Has been cancelled
Tests / test (push) Has been cancelled
Tests / test-postgres (push) Has been cancelled
Tests / mcp (push) Has been cancelled

Under the e-mail and password form, a button takes the redirect flow
(Authorization Code + PKCE), so the password is only ever typed at the
identity server. The routes for it were already there; the page had no
way to reach them.

A Pireon client allows one grant type and the panel's is a password
client, so the redirect flow can use its own: PIREON_REDIRECT_CLIENT_ID
and PIREON_REDIRECT_CLIENT_SECRET (the main client when they are empty).
The button shows up once that client is set, or with
PIREON_REDIRECT_LOGIN=true. Each session renews its token with the
client that issued it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 12:46:07 +02:00
parent 3c119d425e
commit ec4f687ca8
12 changed files with 169 additions and 14 deletions

View File

@@ -4,7 +4,8 @@ declare(strict_types=1);
return [
'sign_in' => 'Entra',
'sign_in_intro' => 'Accedeix amb el teu correu i la teva contrasenya.',
'sign_in_intro' => 'Accedeix amb el teu correu i la teva contrasenya, o amb el teu compte de Pireon.',
'continue_with_pireon' => 'Entra amb Pireon',
'signing_in' => 'Comprovant les teves credencials…',
'password_grant_disabled' => 'L\'accés amb contrasenya està desactivat en aquesta instal·lació. Avisa un administrador.',
'server_unavailable' => 'El servidor d\'identitat no respon. No és cosa de les teves credencials; avisa un administrador.',

View File

@@ -4,7 +4,8 @@ declare(strict_types=1);
return [
'sign_in' => 'Sign in',
'sign_in_intro' => 'Sign in with your e-mail and password.',
'sign_in_intro' => 'Sign in with your e-mail and password, or with your Pireon account.',
'continue_with_pireon' => 'Sign in with Pireon',
'signing_in' => 'Checking your credentials…',
'password_grant_disabled' => 'Password sign-in is switched off on this installation. Please tell an administrator.',
'server_unavailable' => 'The identity server is not responding. This is not about your credentials; please tell an administrator.',

View File

@@ -4,7 +4,8 @@ declare(strict_types=1);
return [
'sign_in' => 'Entrar',
'sign_in_intro' => 'Accede con tu email y tu contraseña.',
'sign_in_intro' => 'Accede con tu email y tu contraseña, o con tu cuenta de Pireon.',
'continue_with_pireon' => 'Entrar con Pireon',
'signing_in' => 'Comprobando tus credenciales…',
'password_grant_disabled' => 'El acceso con contraseña está desactivado en esta instalación. Avisa a un administrador.',
'server_unavailable' => 'El servidor de identidad no está respondiendo. No es cosa de tus credenciales; avisa a un administrador.',