Start here. This is the direct spoken answer to practice first.
Why this question matters
Password login looks simple, but it combines credential storage, abuse control, token issuance, and user-facing error behavior.
I would never store plain passwords. The API stores a salted password hash using a password-hashing algorithm designed for credentials. On login, it finds the account, verifies the submitted password against the hash, checks account status, and returns a generic failure message if anything is wrong. If it succeeds, it issues the normal session or token response.