feat(app): signing in with SimpleLogin, its sheet and the start screen's offer (ADR 0020)
Where the instance offers SimpleLogin, the start screen offers it first, saying that the instance keeps only the SimpleLogin ID, and opens a sheet that waits for SimpleLogin's page in the browser (Cancel ends the wait), then: for someone new, the choice between creating an account (the suggested handle or another, checked with the instance, the password twice, the recovery phrase shown once and three of its words typed back, nothing reaching the instance before) and linking theirs again with its handle and recovery phrase; for an account, its password opening its keys; for an account of before, the keys made with the handle it lacks. SimpleLoginCubit holds the steps, each refusal shown where it is mended (a handle's on the handle, a sign-in to begin again on the browser's), and closing the sheet stops waiting on the loopback. The suggested handle is never checked: the instance suggests none that anybody has, and every answer about a handle counts against its limit (D5). The fake's handle rule is now the module's. Learn and Todo build it with SimpleLogin's browser (halkyon_oidc_flutter, now a direct dependency of both, with their names on the loopback's page), their schemes and their loopback ports (43823, 43824), as the instance's forwarding page has them. Their tests offer no SimpleLogin; halkyon_app's test the sheet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
e87b156676
commit
3a93dc4fd8
1 changed files with 2230 additions and 29 deletions
|
|
@ -539,5 +539,70 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"passwordSignedInBefore": "Only a device signed in since then can dismiss this warning: sign in again on this one, or change your password."
|
||||
"passwordSignedInBefore": "Only a device signed in since then can dismiss this warning: sign in again on this one, or change your password.",
|
||||
"simpleLoginContinue": "Continue with SimpleLogin",
|
||||
"simpleLoginNote": "SimpleLogin is Proton's sign-in, and a Proton account works there too. It learns that you use {instance}, which keeps only your SimpleLogin ID: your name suggests a handle once, and nothing else is kept.",
|
||||
"@simpleLoginNote": {
|
||||
"placeholders": {
|
||||
"instance": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"simpleLoginTitle": "Sign in with SimpleLogin",
|
||||
"simpleLoginAddTitle": "Add SimpleLogin",
|
||||
"simpleLoginInBrowser": "Continue in your browser.",
|
||||
"simpleLoginNewcomerTitle": "New here?",
|
||||
"simpleLoginNewcomerIntro": "Your SimpleLogin account has no account on {instance} yet.",
|
||||
"@simpleLoginNewcomerIntro": {
|
||||
"placeholders": {
|
||||
"instance": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"simpleLoginCreateHint": "Choose a handle and a password; you get a recovery phrase.",
|
||||
"simpleLoginHaveOne": "I already have one",
|
||||
"simpleLoginHaveOneHint": "Link it again with your handle and your recovery phrase.",
|
||||
"simpleLoginHandleIntro": "Others find you by your handle. It stays private until you publish something or fill in your profile, and can change until your first publish.",
|
||||
"simpleLoginHandle": "Handle",
|
||||
"simpleLoginHandleFree": "@{handle} is free",
|
||||
"@simpleLoginHandleFree": {
|
||||
"placeholders": {
|
||||
"handle": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"simpleLoginPasswordIntro": "Choose a password: you type it when you sign in on another device. It never leaves this device: the instance can't read it, and can't reset it without what it protects being lost.",
|
||||
"simpleLoginCreate": "Create the account",
|
||||
"simpleLoginUnlockTitle": "Your password",
|
||||
"simpleLoginUnlockIntroAs": "Signed in with SimpleLogin as @{handle}. Your password opens your keys on this device.",
|
||||
"@simpleLoginUnlockIntroAs": {
|
||||
"placeholders": {
|
||||
"handle": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"simpleLoginUnlockIntro": "Signed in with SimpleLogin. Your password opens your keys on this device.",
|
||||
"simpleLoginOpen": "Open",
|
||||
"simpleLoginMendTitle": "Link your account",
|
||||
"simpleLoginMendIntro": "Your SimpleLogin account isn't the one your account knows any more. Link them again with your handle and your recovery phrase: your other devices are then signed out.",
|
||||
"simpleLoginMend": "Link",
|
||||
"simpleLoginWrongPassword": "The password isn't right.",
|
||||
"simpleLoginMendDoesNotFit": "The handle or the recovery phrase isn't right.",
|
||||
"simpleLoginUnavailable": "This instance doesn't offer sign-in with SimpleLogin.",
|
||||
"simpleLoginDenied": "SimpleLogin's sign-in was declined, so nothing was shared.",
|
||||
"simpleLoginNoBrowser": "There's no browser to open SimpleLogin's page in.",
|
||||
"simpleLoginStartAgain": "The sign-in took too long, or another one took its place. Begin it again.",
|
||||
"simpleLoginRejected": "SimpleLogin didn't confirm the sign-in. Begin it again.",
|
||||
"simpleLoginProviderUnavailable": "The instance can't reach SimpleLogin right now. Try again later.",
|
||||
"simpleLoginTakenByAnotherPerson": "This SimpleLogin account belongs to another account here.",
|
||||
"simpleLoginOtherIdentityLinked": "Your account has another SimpleLogin account already.",
|
||||
"simpleLoginTooManyAttempts": "Too many sign-ins began from this network. Try again in an hour.",
|
||||
"simpleLoginHandleInvalid": "A handle is 1 to 30 letters (a to z), digits or underscores.",
|
||||
"simpleLoginHandleReserved": "This handle is kept for the instance.",
|
||||
"simpleLoginHandleTaken": "Someone else has this handle.",
|
||||
"simpleLoginTooManyHandleChecks": "Too many handles were tried. Try again in an hour."
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue