Приложение Flex, встроенное в приложение Rails с аутентификацией - PullRequest
0 голосов
/ 20 декабря 2010

У нас есть приложение на Rails 3, использующее аутентификацию на основе сеанса (измененная act_as_authenticated), и приложение Flex, которое необходимо встроить в шаблон html.erb.Приложению Flex необходимо получить доступ к маршрутам с установленным параметром before_filter, чтобы проверить, вошел ли пользователь в систему. При взаимодействии с сайтом HTML это приводит к тому, что пользователь перенаправляется на страницу входа, а затем устанавливает свойство сеанса Rails (привязанное кcookie) для записи того, что пользователь вошел в систему при выполнении будущих запросов.

Приложению Flex требуется доступ к XML, сгенерированному Rails (за пределами before_filter), и я не хочу заставлять пользователя входить в системудважды - что я должен передавать в качестве параметра flash в приложение Flex, чтобы оно могло отображаться как «уже вошло», если этот сеанс существует (т. е. пользователь вошел в систему через интерфейс HTML)?Я не имел дело с такой проблемой раньше, поэтому я не уверен, что задаю правильный вопрос.Любой совет приветствуется!

1 Ответ

1 голос
/ 21 декабря 2010

Интеграция флэш-памяти в вашу аутентифицированную службу может быть сложной. Вы не можете полагаться на обычные сеансы http или файлы cookie для управления аутентификацией. Обычно считается, что для каждого вошедшего в систему пользователя создается уникальный токен, который передает каждый запрос на сервер, чтобы доказать, что он фактически является вошедшим в систему пользователем. например:

  • Они входят через HTML-форму.
  • Когда вы предоставляете SWF, который будет обращаться к аутентифицированному контенту, вы даете ему флешвар токена = 49r03f0239fhduffnkdjfgnas или что-то в этом роде.
  • Этот токен генерируется на стороне сервера и хранится где-то для проверки по запросам.
  • При каждом запросе к серверу вы передаете этот токен и проверяете его действительность.
  • Если это хорошо, вы выполняете действие и возвращаете данные.
  • Если это плохо, вы предлагаете пользователю.

примечания:

  • токены должны быть длинными и не угадываемыми, как переменная сеанса.
  • каждый раз, когда они входят в систему, вам нужно сгенерировать новый токен.
  • каждый раз, когда они выходят из системы, вам нужно уничтожить токен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...