Making login lockout duration configurable #7217

Closed
opened 2026-02-21 18:19:28 -05:00 by yindo · 1 comment
Owner

Originally created by @kazuhisa-wada on GitHub (Dec 16, 2024).

Self Checks

  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

1. Is this request related to a challenge you're experiencing? Tell me about your story.

When login attempts exceeds limit, login lockout happens for security reason, which is reasonable. However, currently lockout duration is too long i.e. 24hours, and it's not configurable. Below is the implementation:

    def add_login_error_rate_limit(email: str) -> None:
        key = f"login_error_rate_limit:{email}"
        count = redis_client.get(key)
        if count is None:
            count = 0
        count = int(count) + 1
        redis_client.setex(key, 60 * 60 * 24, count)

I believe this is very inconvenient depending on the environments being used and so making it configurable via .env file in api is reasonable.

2. Additional context or comments

No response

3. Can you help us with this feature?

  • I am interested in contributing to this feature.
Originally created by @kazuhisa-wada on GitHub (Dec 16, 2024). ### Self Checks - [X] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [X] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [X] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [X] Please do not modify this template :) and fill in all the required fields. ### 1. Is this request related to a challenge you're experiencing? Tell me about your story. When login attempts exceeds limit, login lockout happens for security reason, which is reasonable. However, currently lockout duration is too long i.e. 24hours, and it's not configurable. Below is the implementation: ```python def add_login_error_rate_limit(email: str) -> None: key = f"login_error_rate_limit:{email}" count = redis_client.get(key) if count is None: count = 0 count = int(count) + 1 redis_client.setex(key, 60 * 60 * 24, count) ``` I believe this is very inconvenient depending on the environments being used and so making it configurable via .env file in api is reasonable. ### 2. Additional context or comments _No response_ ### 3. Can you help us with this feature? - [X] I am interested in contributing to this feature.
yindo added the 💪 enhancement label 2026-02-21 18:19:28 -05:00
yindo closed this issue 2026-02-21 18:19:28 -05:00
Author
Owner

@crazywoola commented on GitHub (Dec 16, 2024):

Merged thanks :)

@crazywoola commented on GitHub (Dec 16, 2024): Merged thanks :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#7217