Uh oh!
There was an error while loading. Please reload this page.
♻️ Use bcrypt directly instead of passlib - #1539
Conversation
4f520da to
fb5e042Comparefb5e042 to
80c7687Compare
YuriiMotov
left a comment
There was a problem hiding this comment.
LGTM
@karta9821, thank you!
Seems that passlib is dead, and sooner or later we have to take this step.
Changes are not breaking - previously created users can login.
ToDo:
- We can also remove
types-passlibdev dependency. - Before merging, I would regenerate and commit
uv.lock
This pull request has a merge conflict that needs to be resolved. |
YuriiMotov
commented
Oct 10, 2025
So, we should probably be consistent here and also use |
fudanglp
commented
Dec 22, 2025
@YuriiMotov Compared to replacing passlib with pwdlib:
The bcrypt library is already a transitive dependency through passlib, so this is essentially just removing the passlib wrapper. |
tiangolo
commented
Jan 22, 2026
Thanks! This was handled here: #2104 I'll close this one now. ☕ |
The passlib library, previously used for password hashing in this project, is no longer actively maintained — its last update was over 4 years ago. This has been confirmed here: link to the issue.
To improve long-term security and maintainability, this PR replaces passlib with direct usage of the bcrypt library, which is actively maintained and widely used for secure password hashing.
Discussion: #1369