Мне нужна теория.
Что вы понимаете под хорошей аунтефикацией? Пробовал JWT, но потом столкнулся с хейтом, из за его безопасности.
Пароли должны храниться в сессиях , или же в кукисах?
pshy_soch,
1) Пользователь при регистрации задает пароль, этот пароль вы пропускаете через механизм шифрования(самый модный и безопасный сейчас BCrypt) и сохраняете в базе.
2) Пользователь проходит аутентификацию, вводит пароль. Вы пропускаете пароль через механизм шифрования и если полученное значение совпадает со значением в базе, генерируете токен и выдаете на клиент, где храните его в кукис с флагом secure http-only. При запросах к серверу отсылаете кукисы и на сервере проверяете ключ. Никаких проблем быть не должно.
JWT это не аутентификация, это формат токена. И за безопасность он не отвечает по тому что в нем не хранят ничего ценного
пароли нигде храниться не должны
Для простоты можно начать с куки и хранить там идентификатор сессии
если хочется сразу хорошо и правильно - стоит почитать о том как работает OAuth2 и OpenID. Для того чтобы максимально просто начать потыкать - взять бесплатный акк на Auth0 и выполнить простой мануал минут за 15