Как заставить пользователя войти в автономное веб-приложение?

Я создаю автономное веб-приложение для iPhone и других мобильных устройств. Есть ли способ сохранить аутентификацию пользователя, используя локальное хранилище WebSql?

Поэтому, когда вы открываете веб-приложение в автономном режиме, я хочу, чтобы либо пользователь уже вошел в систему, либо пользователь должен иметь возможность войти в систему.


person billgajen    schedule 18.11.2012    source источник
comment
Интересный вопрос, это означает, что вам придется хранить учетные данные пользователя локально, что не очень безопасно. Интересно, есть ли какой-либо безопасный способ или лучшие практики для достижения этой цели.   -  person Gurpreet Singh    schedule 18.11.2012
comment
Просто подумайте - если проверка учетных данных, по определению, выполняется на клиенте в javascript, для кого-то было бы тривиально имитировать / обходить аутентификацию, изменяя свойства js в приложении. Затем предположим, например, что данные на стороне клиента были синхронизированы с сервером, когда вы снова в сети, это может вызвать проблемы.   -  person user888734    schedule 31.10.2013


Ответы (2)


Если я правильно понимаю вопрос, вы могли бы это сделать следующим образом:

При входе в систему (онлайн):

  • Выполните аутентификацию на сервере, если это правильно, сохраните имя пользователя и хешированный пароль (например, используя Crypto JS) в базе данных WebSql.
  • Если учетная запись уже существует в локальной базе данных, все равно сгенерируйте новый хеш на случай, если пользователь изменил свой пароль с момента последнего входа в систему.

При входе в систему (оффлайн):

  • Выполните аутентификацию в локальной базе данных.

Это, конечно, потребует от пользователей входа в систему, используя онлайн-версию, по крайней мере, один раз, прежде чем входить в систему локально. Так, например, Windows 8 делает это, когда кто-то пытается войти в свою учетную запись Microsoft при отключении.

person Henrik Karlsson    schedule 18.11.2012

Я не знаю, как хранить или использовать данные о состоянии клиента (связка ключей в iOS также в Android) , но с точки зрения веб-приложения вам не нужно ничего делать. Вам не нужно ничего делать, потому что, если вы можете, это небезопасно. После входа в систему сервер установит файл cookie только для HTTP, который действует несколько дней или недель. В течение этого времени запрос с учетными данными к серверу всегда аутентифицируется браузером. Вы можете запросить адрес электронной почты для входа или что-то еще с сервера. В целях дополнительной безопасности сервер может запросить person Community    schedule 18.11.2012