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: add required characters password strength check #1323

Merged
merged 3 commits into from
Nov 28, 2023

Conversation

hf
Copy link
Contributor

@hf hf commented Nov 28, 2023

Adds the GOTRUE_PASSWORD_REQUIRED_CHARACTERS config option, which if set, will reject passwords that do not contain at least one character of each set of characters.

It is defined like so: abc...xyz:0123...89. This means that at least one lowercase and one digit has to be present in the password to be accepted. All other characters are also allowed. To include the : character, escape it with \:.

When a weak password is detected, the HTTP 429 error is sent with an additional JSON field weak_password that includes a reasons property -- an array of the strings:

  • length if the password is not long enough
  • characters if the password does not use all required character sets

@hf hf requested a review from a team as a code owner November 28, 2023 13:39
@hf hf force-pushed the hf/character-strength-checks branch from 377acb1 to 457743a Compare November 28, 2023 13:51
@hf hf force-pushed the hf/character-strength-checks branch from 457743a to 5372e7c Compare November 28, 2023 16:07
internal/conf/configuration.go Show resolved Hide resolved
internal/conf/configuration.go Outdated Show resolved Hide resolved
internal/conf/configuration.go Show resolved Hide resolved
internal/api/password.go Show resolved Hide resolved
@hf hf merged commit 3991bdb into master Nov 28, 2023
1 check passed
@hf hf deleted the hf/character-strength-checks branch November 28, 2023 17:58
Copy link
Contributor

🎉 This PR is included in version 2.120.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

uxodb pushed a commit to uxodb/auth that referenced this pull request Nov 13, 2024
Adds the `GOTRUE_PASSWORD_REQUIRED_CHARACTERS` config option, which if
set, will reject passwords that do not contain at least one character of
each set of characters.

It is defined like so: `abc...xyz:0123...89`. This means that at least
one lowercase and one digit has to be present in the password to be
accepted. All other characters are also allowed. To include the `:`
character, escape it with `\:`.

When a weak password is detected, the HTTP 429 error is sent with an
additional JSON field `weak_password` that includes a `reasons` property
-- an array of the strings:

- `length` if the password is not long enough
- `characters` if the password does not use all required character sets

---------

Co-authored-by: Kang Ming <[email protected]>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 13, 2024
Adds the `GOTRUE_PASSWORD_REQUIRED_CHARACTERS` config option, which if
set, will reject passwords that do not contain at least one character of
each set of characters.

It is defined like so: `abc...xyz:0123...89`. This means that at least
one lowercase and one digit has to be present in the password to be
accepted. All other characters are also allowed. To include the `:`
character, escape it with `\:`.

When a weak password is detected, the HTTP 429 error is sent with an
additional JSON field `weak_password` that includes a `reasons` property
-- an array of the strings:

- `length` if the password is not long enough
- `characters` if the password does not use all required character sets

---------

Co-authored-by: Kang Ming <[email protected]>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 15, 2024
Adds the `GOTRUE_PASSWORD_REQUIRED_CHARACTERS` config option, which if
set, will reject passwords that do not contain at least one character of
each set of characters.

It is defined like so: `abc...xyz:0123...89`. This means that at least
one lowercase and one digit has to be present in the password to be
accepted. All other characters are also allowed. To include the `:`
character, escape it with `\:`.

When a weak password is detected, the HTTP 429 error is sent with an
additional JSON field `weak_password` that includes a `reasons` property
-- an array of the strings:

- `length` if the password is not long enough
- `characters` if the password does not use all required character sets

---------

Co-authored-by: Kang Ming <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants