feat: add password authentication support (closes #7)

Add token/password auth mode toggle on the login screen.
When password mode is selected, sends { password } instead of
{ token } in the WebSocket connect handshake.

Also adds clipboard utility tests and fixes credential test
to include authMode field.
This commit is contained in:
Nicolas Varrot
2026-02-18 22:07:06 +00:00
parent 16db1cf811
commit 5c47dd2aeb
9 changed files with 745 additions and 21 deletions

View File

@@ -14,6 +14,10 @@ const en = {
'login.gatewayUrl': 'Gateway URL',
'login.token': 'Token',
'login.tokenPlaceholder': 'Enter your gateway token',
'login.authToken': 'Token',
'login.authPassword': 'Password',
'login.password': 'Password',
'login.passwordPlaceholder': 'Enter your gateway password',
'login.connect': 'Connect',
'login.connecting': 'Connecting…',
'login.showToken': 'Show token',
@@ -191,6 +195,10 @@ const fr: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'URL de la gateway',
'login.token': 'Token',
'login.tokenPlaceholder': 'Entrez votre token gateway',
'login.authToken': 'Token',
'login.authPassword': 'Mot de passe',
'login.password': 'Mot de passe',
'login.passwordPlaceholder': 'Entrez votre mot de passe gateway',
'login.connect': 'Connexion',
'login.connecting': 'Connexion…',
'login.showToken': 'Afficher le token',
@@ -353,6 +361,10 @@ const es: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'URL del gateway',
'login.token': 'Token',
'login.tokenPlaceholder': 'Introduce tu token de gateway',
'login.authToken': 'Token',
'login.authPassword': 'Contraseña',
'login.password': 'Contraseña',
'login.passwordPlaceholder': 'Introduce tu contraseña de gateway',
'login.connect': 'Conectar',
'login.connecting': 'Conectando…',
'login.showToken': 'Mostrar token',
@@ -517,6 +529,10 @@ const de: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'Gateway-URL',
'login.token': 'Token',
'login.tokenPlaceholder': 'Gateway-Token eingeben',
'login.authToken': 'Token',
'login.authPassword': 'Passwort',
'login.password': 'Passwort',
'login.passwordPlaceholder': 'Gateway-Passwort eingeben',
'login.connect': 'Verbinden',
'login.connecting': 'Verbinde…',
'login.showToken': 'Token anzeigen',
@@ -679,6 +695,10 @@ const ja: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'ゲートウェイURL',
'login.token': 'トークン',
'login.tokenPlaceholder': 'ゲートウェイトークンを入力',
'login.authToken': 'トークン',
'login.authPassword': 'パスワード',
'login.password': 'パスワード',
'login.passwordPlaceholder': 'ゲートウェイパスワードを入力',
'login.connect': '接続',
'login.connecting': '接続中…',
'login.showToken': 'トークンを表示',
@@ -841,6 +861,10 @@ const pt: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'URL do Gateway',
'login.token': 'Token',
'login.tokenPlaceholder': 'Insira o token do gateway',
'login.authToken': 'Token',
'login.authPassword': 'Senha',
'login.password': 'Senha',
'login.passwordPlaceholder': 'Insira a senha do gateway',
'login.connect': 'Conectar',
'login.connecting': 'Conectando…',
'login.showToken': 'Mostrar token',
@@ -1003,6 +1027,10 @@ const zh: Record<keyof typeof en, string> = {
'login.gatewayUrl': '网关地址',
'login.token': '令牌',
'login.tokenPlaceholder': '输入网关令牌',
'login.authToken': '令牌',
'login.authPassword': '密码',
'login.password': '密码',
'login.passwordPlaceholder': '输入网关密码',
'login.connect': '连接',
'login.connecting': '连接中…',
'login.showToken': '显示令牌',
@@ -1165,6 +1193,10 @@ const it: Record<keyof typeof en, string> = {
'login.gatewayUrl': 'URL del Gateway',
'login.token': 'Token',
'login.tokenPlaceholder': 'Inserisci il token del gateway',
'login.authToken': 'Token',
'login.authPassword': 'Password',
'login.password': 'Password',
'login.passwordPlaceholder': 'Inserisci la password del gateway',
'login.connect': 'Connetti',
'login.connecting': 'Connessione…',
'login.showToken': 'Mostra token',