Направляющие 3, Authlogic, NGINX и Базовая аутентификация HTTP никакая работа приятно вместе

Я нахожусь на ранних стадиях создания приложения с помощью направляющих 3. Аутентификация пользователя приводится в действие Authlogic, который у меня есть установка, в значительной степени столь же стандартная (согласно документам в качестве примера), и все работает как ожидалось локально.

Я только что развернул приложение на чистой установке сервера Centos 5.4 / NginX / Пассажир, таким образом, штат может начать входить в систему и вводить содержание и т.д. Однако мы - длинный путь от этого являющегося готовым к общественному вниманию, таким образом, я использовал основной подлинный модуль NginX для хранения всего сайта позади другого уровня аутентификации.

К сожалению, аутентификация Authlogic и стандартная аутентификация NginX, кажется, конфликтуют друг с другом. Если основной автор идет затем, невозможно войти в систему с Authlogic, все же если я отключаю основного автора затем работы Authlogic как ожидалось.

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

5
задан aaronrussell 17 May 2010 в 17:42
поделиться

2 ответа

Я могу ответить на свой собственный вопрос (после нескольких часов поиска совершенно не в том месте). Хорошая статья по Authlogic::Session::Config помогла.

class UserSession < Authlogic::Session::Base
  allow_http_basic_auth false
end
13
ответ дан 18 December 2019 в 13:11
поделиться

Я все еще не пробовал Rails 3, поэтому мой ответ будет более общим. И я не знаю базового модуля аутентификации для NginX.

  1. Если ваша команда подключена локально, вы можете создать сервер, доступный только из локальной сети.
  2. Если вам нужен доступ через Интернет, то вы можете спрятать его за VPN.
  3. Вы можете установить доступ к сайту только через локальный IP-адрес и предоставить доступ по ssh всем, кому он нужен. Легко создать прокси-сервер socks через ssh (в linux: ssh -D 8080 (скрыто), где 8080 - номер порта, затем установите прокси-сервер socks в браузере, и вы сможете пообедать yoursever.com:3000).
  4. Я думаю, что NginX позволяет вам устанавливать разрешенные IP-адреса и запрещать другие - так что вы можете использовать его также для ограничения доступа.
  5. А также вы можете временно добавить в ApplicationController before_filter: require_login :), чтобы миру была доступна только страница входа.

Надеюсь, это поможет!

1
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: