feat(auth): recover cross-signal authorization with provision secrets

A client that could not authorize against a foreign signal server was
redirected into a dead end with no way to retry, so servers joined from
another signal route became unreachable.

The home server now stores a per-user provision secret, clients keep it in
their own store, and a recovery service records why authorization failed per
server URL. Invite, server browser, and chat room surface that reason and
offer a retry instead of silently redirecting.
This commit is contained in:
2026-08-14 03:19:29 +02:00
parent e49b3ec112
commit f9e8538c80
37 changed files with 1877 additions and 244 deletions
+5
View File
@@ -37,6 +37,11 @@
"defaultServerName": "Signal Server"
},
"provision": {
"credentialsRejected": "This server already has an account that the restored session cannot unlock. Your home account is still signed in.",
"reconnectTitle": "Reconnect to {{serverName}}",
"retry": "Retry",
"retrying": "Retrying…",
"serverUnavailable": "This server is currently unavailable. Retry when the connection is restored.",
"usernameCollision": "Username {{preferredUsername}} was taken on {{serverName}}. Created {{provisionedUsername}} instead."
}
}