управление сеансом и одноразовый вход пользователя - iphone - PullRequest
4 голосов
/ 09 августа 2011

Я создаю приложение для iphone, в которое пользователь входит один раз (когда он открывает приложение в первый раз), а затем никогда не должен будет снова входить в систему (например, как это делает instagram).Приложение автоматически зарегистрирует их в следующий раз, когда они откроют его.Однако приложение отправляет множество запросов на веб-сервер.

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

Один из подходов состоит в том, что сервер выдает пользователю токен при первом входе в систему и делает этот токен постоянным.Это, однако, не кажется безопасным.

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Ну, как правило, сеанс уже обрабатывается с помощью файлов cookie сеанса.Если вы не планируете подключать сторонние сервисы к вашему сервису, я думаю, что делать что-то кроме базовой аутентификации http немного излишне.Я бы определенно отправил все ваши запросы на соединение через соединение https.

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

1 голос
/ 09 августа 2011

Как лучше всего серверу выдавать токены сеанса?

Один из способов сделать это - использовать OAuth . Это сложнее, чем куки, но у него больше возможностей.
Токен предоставляется каждому приложению и может быть отозван пользователем со страницы на сервере. Этот токен может быть постоянным или временным. Вы можете сохранить его в виде простого текста или внутри цепочки для ключей iPhone, в зависимости от того, какой уровень безопасности вам нужен. Существует открытый бесплатный код для серверных и клиентских реализаций. Еще одним преимуществом является то, что клиенты могут войти в ваш сервис, используя свою учетную запись Twitter / Facebook / ..., поэтому им не нужно регистрироваться на вашем сайте.

...