Force_ssl / принудительно вернуться на http. Какой лучший способ сделать это? - PullRequest
0 голосов
/ 04 марта 2012

Я использую force_ssl в моих контроллерах Users и Sessions.Это прекрасно работает.Когда я выполняю действия на любом из этих контроллеров, мой браузер перенаправляет на https.Проблема в том, что после того, как пользователь перенаправлен на https, его браузер продолжит использовать https, по крайней мере, при использовании относительных URL-адресов.Я бы предпочел, чтобы пользователь использовал http для других страниц приложения.Я предложил 3 возможных стратегии, чтобы направлять пользователей на http для других страниц.

  1. Используйте абсолютные URL-адреса вместо относительных URL-адресов.С этой стратегией я избегаю использования таких вещей, как root_path, но вместо этого использую root_url.Я могу установить default_url_options в моем контроллере приложения для использования протокола http.Таким образом, все ссылки в моем приложении будут пытаться вернуть пользователя к http.Они всегда могут переключить его на https в своем браузере вручную, но мне все равно, если они это сделают.

  2. Напишите фильтр до, похожий на https://gist.github.com/1040964. Я не знаюэто действительно не нравится, потому что мне пришлось бы повторять, какие контроллеры / действия я заставляю ssl в контроллере приложения, а также конкретный контроллер, в котором я использую force_ssl.

  3. Используйте этоплагин https://github.com/bartt/ssl_requirement. Этот плагин кажется хорошим, потому что он по умолчанию заставит http, если я ничего не скажу.Форсирование к ssl кажется очень похожим на метод include force_ssl.Это кажется хорошим решением, но я не хочу полагаться на плагин, если есть простой способ сделать это без него.

Я не могу решить, какой из этих 3варианты самые лучшие и ищу рекомендации.Я также новичок в Rails, поэтому, если какое-либо из этих решений "плохо", пожалуйста, дайте мне знать.Также, если есть другие варианты, о которых я не знаю, пожалуйста, дайте мне знать.

Какое решение лучше, если оно есть?(Рельсы 3.2)

1 Ответ

1 голос
/ 04 марта 2012

Лучший плагин.Исходный код этого плагина очень похож на код в вашей сути.Фактически, если вы не любите плагин, все, что вам действительно нужно, это часть здесь:

https://github.com/bartt/ssl_requirement/blob/master/lib/ssl_requirement.rb#L112

Вы можете адаптировать его к своему application_controller.rb или полностью использовать плагин.

Приветствия.

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