Я создаю веб-приложение, которое должно работать в автономном режиме. Система построена для захвата транзакций продаж. Основная часть "автономной" части довольно проста - мне просто нужно хранить данные локально и синхронизировать их, когда я снова в сети. Пока что так хорошо.
Проблема заключается в аутентификации. Приложение будет работать на общей машине с одной учетной записью пользователя ОС. Если я не в сети, как я могу аутентифицировать пользователя?
У самих пользователей нет личных данных, которые мне нужно будет отделить (т.е. мне не нужно защищать их друг от друга на клиенте). Мне нужно иметь возможность проверить свой пароль, чтобы я мог запретить другим пользователям войти в систему в течение дня, даже если соединение не работает.
Один из подходов, о котором я думаю, связан с кэшированием хэшей паролей на стороне клиента в IndexedDB. Только ограниченный набор пользователей будет допущен к входу с определенной общей машины, поэтому мне не нужно будет кэшировать всю базу данных паролей локально. Предполагая, что у меня есть хорошая политика паролей (требования сложности и срока действия) на месте, и сами хеши являются безопасными (bcrypt), насколько ужасна идея?
Есть ли у меня другие возможности?