Год назад я и моя команда думали о том, какую систему паролей мы собираемся использовать. Сначала, как и у обычных людей, первая идея, которая пришла нам в голову, заключалась в использовании типичных и общих: имя пользователя и пароль, хранение хэшированного пароля в базе данных, как обычно для других платформ, но вдруг увидел эту статью
да, хеширование пароля и его сохранение в базе данных будет/является ржавым
Другая интересная статья об этом может быть (это новее, но идет в направлении больше не использовать или не хранить пароль) => https://www.weforum.org/agenda/2020/01/ 4-причины-пароли-уходят-в-прошлое/
Итак, мы взяли новое направление, используя Magic Link, новый известный способ входа пользователя в систему. но проблемы не исчезнут, если просто знать направление движения, нам нужно найти способ создать систему MagicLink.
Следующей идеей, которая пришла нам в голову, было реализовать простую базу данных, в которой мы будем хранить уникальные пароли (хешированные или GUID) и имя пользователя, чтобы каждый раз, когда пользователь запрашивал новую ссылку Magic,наша система должна создавать новый элемент в нашей базе данных и удалять его, когда он используется, хорошо для одного пользователя, но как насчет 100 000 пользователей? это много запросов на написание, поиск и удаление элементов, это может привести к ненужным расходам.
Затем, поработав несколько недель, я нашел хорошую идею и провел рефакторинг, чтобы создать лучший простой модуль npm, где вы можете легко создавать Одноразовые пароли для своих пользователей (@frani /easy-no-password) без необходимости устанавливать базу данных или что-то еще.
этот модуль генерирует буквенно-цифровой токен на основе имени пользователя, секрета и отметки времени, и его время жизни составляет 5 минут, после чего токен будет недействителен.
Экономьте время, экономьте БД, повышайте безопасность и, конечно же, экономьте деньги. Все ресурсы сохранены простым способом, таким образом
установите модуль в свой проект:
$ npm install @frani/easy-no-password
пример кода
это все, легко.
Если вам это нравится, пожалуйста, дайте мне начать мой репозиторий в Github, https://github.com/frani/easy-no-password
спасибо, что прочитали
с уважением
франи.-