Replies: 4 comments 11 replies
-
|
Thanks for the feature request and thanks for PocketBase references. I didn't know that PocketBase allows side-grading users from password-based login to OAuth. I think I understand the problem you're trying to solve. I'm wondering where you see the main benefit over public APIs and keeping the state (e.g. progression) local until signed up? (certain benefits of server-side state like cross-device sync won't be available until properly signed up) |
Beta Was this translation helpful? Give feedback.
-
That's fair. However, I would mostly consider this a bug. We should probably check on re-auth and update the address if it changed. You're right that there can be divergence until re-auth but for the lack of a more principled approach, I'd opportunistically consider this an edge-case.
Just so I understand you correctly, by different scheme you mean email vs username. In TB's case don't use the email as an email? To me email is more than just a set of loose string validation rules but rather a means of communication. I did consider allowing different schemes. Early versions of TB even had a username. I think that's a fair and maybe separate feature request to allow non-email identifiers.
As mentioned in my previous response, I think we could handle these cases in the uniqueness logic rather than making up a random email. Ideally (and maybe the better user experience in many use-cases, since it preserves state) is to nudge the user to reset the password, sign in and link with oauth.
Sounds like github grabs it too but let's you add more (github let's you register N email addresses with your account). Copium aside, I don't want us to be sneaky. If I'm not mistaken, users have to allow it with their external auth provider first. Is there something else we could do better? We could certainly allow users to change their emails afterwards with validation and all.
👍
Hadn't thought that far. But we might actually want to use a different token flavor or use a separate key to allow for key rotations w/o killing guest accounts.
That's what I meant. When you enable guest auth we should check for Basically, they do everything to not distract me from the app. That's fair. Ultimately it will depend on your product needs or business incentives. Adding a config option for this would be fairly easy. I do think that requiring validation is probably the more sensible default for many use-cases 🤷♀️ Just to summarize, I feel like we both agree that guest auth is possible. And that there are a bunch of independent features we could add to auth:
It seems, we only disagree on some details how to model guest auth and maybe more ideologically what it means to ask for an email address 🤣 WDYT? |
Beta Was this translation helpful? Give feedback.
-
Agreed. There are many more reasons from burner emails, dead accounts, ...
Agreed. As said earlier, I'd be happy to allow for that.
As discussed, I'd be open to lift the uniqueness requirement to incorporate oauth
Then we ignore it and wait for the next turn around 🤷♀️
Right. We should have the primitives for users to implement what you call github's approach, i.e. prompt the user upon sign-up for their email. (The built-in auth UI is very basic, we can certainly discuss to expand it)
I feel I'm starting go get it. You're thinking separating as in: email being used solely used as a unique identifier for auth vs as a means of communications otherwise. I'm still grappling with duolingo. I don't understand why one wouldn't got full free-form username/handle in terms of separation. I can understand that someone would prefer something other than email but why then enforce an email scheme on your unique ids? At the end of the day, that's what most others do including github 🤷♀️
All negotiable but I think we should decide on each dimension independently, e.g. loosening validation may make sense w/o guest accounts and guest accounts may make sense w/o loosened validation (especially if we were to allow non-email identifiers for auth). |
Beta Was this translation helpful? Give feedback.
-
Registering a guest userOriginally, I had in mind something like duolingo where non-logged-in user starts the app and sees 2 buttons:
Questions:
The guest register endpoint does:
Questions:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Say I'd like to have new users of my educational mobile app to be able to start with the course right away w/o providing credentials first. This is how learning apps like Duolingo, Mimo do it. You start with an anonymous account, make some progress, and later, if you wish to continue and be able to save your progress across devices and have access to more features like ratings, forums, etc, you register and make your account permanent.
I'm thinking about an anonymous account as a mostly regular account, just w/o credentials. When the app starts the very 1st time and a user chooses not to register, some api (say
/api/auth/v1/register_anonymous) is accessed to obtain the usual tokens. The tokens are then saved and reused on successive app launches.To protect anonymous API from abuse, rate-limiting is employed (with caddy?). E.g. from firebase docs (see links below):
Same stuff in other systems:
So is this possible? Are there difficulties expected with the later making of the anonymous account permanent?
Beta Was this translation helpful? Give feedback.
All reactions