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

feat(API): permissive email check in login, reset & verification #6648

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

kontrollanten
Copy link
Contributor

@kontrollanten kontrollanten commented Oct 1, 2024

Description

In order to not force users to be case sensitive when asking for password reset or resend email verification. When there's multiple emails where the only difference in the local is the capitalized letters, in those cases the users has to be case sensitive.

  • When a user tries to login: fetch all emails in the database case insensitive. If there's only one match, then treat it as the correct email even if they differ in capitalized letters.
  • When a user tries to reset password: fetch all emails in the database case insensitive. If there's only one match, then treat it as the correct email even if they differ in capitalized letters.
  • When a user tries to get a new verification email: fetch all emails in the database case insensitive. If there's only one match, then treat it as the correct email even if they differ in capitalized letters.

Related issues

closes #6570

Has this been tested?

  • 👍 yes, I added tests to the test suite
  • 💭 no, because this PR is a draft and still needs work
  • 🙅 no, because this PR does not update server code
  • 🙋 no, because I need help

Screenshots

@kontrollanten kontrollanten marked this pull request as draft October 1, 2024 20:43
@kontrollanten kontrollanten force-pushed the feat-6570-permissive-email-handling branch 2 times, most recently from 77c4d9e to 4134f25 Compare October 2, 2024 05:46
In order to not force users to be case sensitive when asking for
password reset or resend email verification. When there's multiple
emails where the only difference in the local is the capitalized
letters, in those cases the users has to be case sensitive.

closes Chocobozzz#6570
@kontrollanten kontrollanten force-pushed the feat-6570-permissive-email-handling branch from 4134f25 to b417ca2 Compare October 2, 2024 07:00
Allow case insensitive email when there's no other candidate.

closes Chocobozzz#6570
@kontrollanten kontrollanten force-pushed the feat-6570-permissive-email-handling branch from b417ca2 to 5e44b71 Compare October 2, 2024 07:38
@kontrollanten kontrollanten marked this pull request as ready for review October 2, 2024 08:04
@kontrollanten kontrollanten changed the title feat(API): permissive email check in reset & verification feat(API): permissive email check in login, reset & verification Oct 2, 2024
Copy link
Owner

@Chocobozzz Chocobozzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Please add verification email test for user registration too

packages/tests/src/api/check-params/users-emails.ts Outdated Show resolved Hide resolved
packages/tests/src/api/check-params/users-emails.ts Outdated Show resolved Hide resolved
packages/tests/src/api/users/oauth.ts Outdated Show resolved Hide resolved
packages/tests/src/api/users/oauth.ts Show resolved Hide resolved
server/core/lib/auth/oauth-model.ts Outdated Show resolved Hide resolved
server/core/models/user/user.ts Show resolved Hide resolved
server/core/models/user/user.ts Outdated Show resolved Hide resolved
@kontrollanten
Copy link
Contributor Author

@Chocobozzz Your comments are resolved. But now some of the new tests fails since the email exists check is case insensitive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use case insensitive email for reset password
2 participants