You can move users to a new login system without making anyone reset their password. To do it, you either import their existing password hashes or check each password once against the old system the next time that user signs in. Most legacy application modernization projects use both methods, with a short period where the old and new identity providers run side by side.
Picture your situation. Your user table is full of hashes from a framework nobody on the team chose. The board wants the new platform live without a wave of "I can't log in" tickets. This guide is written for that moment.
Why can't you just copy the passwords across?
You never had the passwords. You have hashes, and a hash only works with the exact algorithm, salt and settings that created it.…