[Synapse v1.46.0](https://github.com/matrix-org/synapse/releases/tag/v1.46.0) (released on 2021-11-02) added password provider support to its new module API (see https://github.com/matrix-org/synapse/pull/10548). The old `password_providers` configuration (and module code) still works, but upgrading to the new API is probably better. I've already done it for [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) with [this commit](https://github.com/devture/matrix-synapse-shared-secret-auth/commit/4adf403ef613135d979433ce7acd6ec55e12f63f) (along with other improvements, like a custom login type), so you can take inspiration from that.