Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow signing in or registering without a google account #8

Open
lboklin opened this issue Oct 3, 2020 · 4 comments · Fixed by #128
Open

Allow signing in or registering without a google account #8

lboklin opened this issue Oct 3, 2020 · 4 comments · Fixed by #128
Assignees
Labels
enhancement New feature or request High priority

Comments

@lboklin
Copy link

lboklin commented Oct 3, 2020

Users who do not use any Google services cannot access the practice feature.

@jqueiroz
Copy link
Owner

jqueiroz commented Oct 3, 2020

Thank you @lboklin for the feedback!

Would allowing sign-in using alternative providers (e.g. Microsoft, GitHub, etc) resolve your concerns?

Also wondering if there is an identity provider which is broadly used by people who care deeply about privacy. GitHub might be acceptable, but it is biased towards programmers.

(Incidentally, the practice feature only requires signing in for decks. For courses, anyone can practice).

@jqueiroz jqueiroz self-assigned this Oct 3, 2020
@jqueiroz jqueiroz added the enhancement New feature or request label Oct 3, 2020
@lboklin
Copy link
Author

lboklin commented Oct 4, 2020

While I clearly have a GitHub account, I would want for anyone to be able to use the service even if not registered with any of the large corporations. By taking a quick look, I see OpenID as a possible solution. Simple registration via e-mail would be perfectly acceptable as well.

@jqueiroz
Copy link
Owner

jqueiroz commented Oct 9, 2020

Thanks, that makes sense!

I integrated with OpenID Connect, and used it to support Microsoft accounts. Unfortunately, there are very few providers supporting OpenID Connect right now, and none of them could be considered independent of large corporations.

So I am planning to do the following:

  1. Allow users to sign in using external identity providers, such as Microsoft and Google (as is currently done). This is the preferred approach, and will likely be chosen by most users.
  2. BUT, as a fallback, offer the possibility of signing in using an arbitrary handle (just a handle, without a password).
    i. This is not really authentication, but merely a way of specifying a custom key (in the sense of identifier) to which one's progress will be persisted. An appropriate disclaimer will be placed indicating that anyone who shares your handle, or anyone who knows your handle, will be able to interfere with "your" progress.
    ii. Additionally, there will be an option to sign in using an automatically generated unique identifier. Users will be provided with an option to export this identifier, and will be asked to safely store a copy of this identifier if they do not wish to lose their progress.

Approach (2.ii) corresponds to anonymous sign-in with a secret (instead of e.g. a private/public key pair). I feel that this should suffice to protect something as trivial as the progress of users on a deck, while at the same time respecting their privacy and not placing the burden and responsibility of storing passwords (which will inevitably be reused across different services, despite all warnings) on me.

Do you think that this would address your concerns, while also providing an acceptable user experience? For context, the only purpose of sign-in is having per-user storage of scores for each card, so I do not see significant concerns with the lack of a passwords. Also, this is just a fallback, and users who want actual authentication could always opt for an external provider. But I could be missing something.


For context, as mentioned on the reddit thread, I would strongly prefer to avoid handling passwords myself (even if properly salted/pbkdf2'd).

Pasting the relevant piece here, for reference: I also intend to share the database with a few trusted Lojbanists, to mitigate the bus factor. Storing personally identifiable information and/or passwords (even salted) would introduce additional considerations.


Hopefully, descentralized identity will be a reality some day.

@jqueiroz jqueiroz linked a pull request Nov 25, 2020 that will close this issue
@tbodt
Copy link
Contributor

tbodt commented Jan 26, 2022

How about localStorage?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request High priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants