Wasya UK, да у них смысл разный, salt + sha служит для того что бы хранить например пароль в безопасном виде в базе, а при авторизации вводимый пароль пользователя так же хэшировать и сверять === т.е. авторизировать пользователя (в основном)
JWT нужен для того что бы аутентифицировать пользователя путем хранения идентификатора.
т.е. ты получил корректный логин/пароль от пользователя и возвращаешь ему JWT токен в котором хранишь например
этот токен легко расшифровать например тут https://jwt.io
но верифицировать/подтвердить его (что он не изменен, что в него ничего не добавили) ты можешь только на сервере использую подпись. От примера ключ - secret_toster
Богдан, у меня нет ничего связанного с рельсами... Токены генерируются на сервера, а генерирует их именно hanami через гем ruby-jwt (https://github.com/jwt/ruby-jwt). Для быстрого моего ответа можете писать мне в телеграмм @alexmint
1) Rails слишком здаровый и очень много мусора было бы. Sinatra хороша но зачем велосипед изобретать, все то что мне нужно было, уже есть в Hanami (и как выяснилось, все было не зря)
2) Про Rails и webpack я ничего не скажу, как по мне это плохое решение и я даже не вникаю в него
Богдан, в одном крупном проекте используем trailblazer для более тонкого разделения кода, уже не в первый год, полет нормальный. Даже в новый проект воткнули и связали с GraphQL, все отлично
Вадим, Запорожченко Олег очень грамотно вам ответил, но у вас будет проблема с тем, что бы запускать парсер каждые 5 секунд, с нагрузкой, с различными подводными камнями (в духе что делать если сайт отвечает дольше чем 5 секунд?)... подумайте ранее, может вы что то не так делаете? или много хотите? (дружеский совет)
vlad_lutsky, вместо пароля можете смс слать, или 2FA сделать. Это полностью верифицирует пользователя и не возможен вариант что он "расскажет пароль"/"забудет пароль"
Siarhei Pashkevich, все зависит от вашей архитектуры. Я вот одного понять не могу, вы уверенны что вам это нужно? почему пользователь Вася зарегался в РФ, приехал в Финляндию и у него уже другие данные? а как старые получить? Возможно что если бы вы описали изначальную задачу "зачем все это" вам бы дали более корректный и грамотный ответ