[PR #23334] fix: [#17313] Case insensitive email login #30248

Closed
opened 2026-02-21 20:47:08 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/23334

State: closed
Merged: No


Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

Changes made:

Resolves #17313 to be support login by case-insensitive email

  1. In account_service.py :

    • Modified the authenticate method to use func.lower() for case-insensitive email queries.
    • Modified the check_email_unique method to also use func.lower() for case-insensitive email uniqueness checks.
  2. In webapp_auth_service.py :

    • Added the import statement from sqlalchemy import func .
    • Modified the authenticate method to use func.lower() for case-insensitive email queries.
    • Modified the get_user_through_email method to also use func.lower() for case-insensitive email queries.

Additionally, created a database migration file 2025_08_04_0001-add_account_email_lower_idx_func.py which adds a functional index account_email_lower_idx on the email field of the accounts table based on lower(email) to optimize case-insensitive email query performance.

Screenshots

Before After
... ...

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/23334 **State:** closed **Merged:** No --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 2. Ensure there is an associated issue and you have been assigned to it > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary Changes made: Resolves #17313 to be support login by case-insensitive email 1. In account_service.py : - Modified the authenticate method to use func.lower() for case-insensitive email queries. - Modified the check_email_unique method to also use func.lower() for case-insensitive email uniqueness checks. 2. In webapp_auth_service.py : - Added the import statement from sqlalchemy import func . - Modified the authenticate method to use func.lower() for case-insensitive email queries. - Modified the get_user_through_email method to also use func.lower() for case-insensitive email queries. Additionally, created a database migration file 2025_08_04_0001-add_account_email_lower_idx_func.py which adds a functional index account_email_lower_idx on the email field of the accounts table based on lower(email) to optimize case-insensitive email query performance. ## Screenshots | Before | After | |--------|-------| | ... | ... | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:47:08 -05:00
yindo closed this issue 2026-02-21 20:47:08 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#30248