Удалите HTTPS из ссылки подтверждения Devise при использовании Rack :: SSLEnforcer - PullRequest
3 голосов
/ 27 января 2012

Я использую Devise и Rack :: SSLEnforcer в приложении Rails. Когда пользователи получают подтверждение по электронной почте, оно выглядит примерно так:

http://mysite.com:443/users/confirmation?confirmation_token=123456789xxx

Ссылка автоматически генерируется с помощью метода Devise's translation_url.

К этой ссылке не должен быть подключен порт 443. Теоретически мне не нужна ссылка на адрес https, но хорошо, если это так. Как минимум, это должен быть https спереди, а не порт 443. В конце.

Есть идеи?

1 Ответ

6 голосов
/ 13 февраля 2012

Я решил эту проблему, установив представления Devise и настроив создаваемую ссылку. Вы можете установить представления Devise с помощью этой команды:

rails generate devise:views

Обязательно прочитайте документацию Devise, потому что вам может потребоваться настроить некоторые другие вещи, когда вы делаете это (в зависимости от вашей конкретной ситуации).

После этого вы можете редактировать файл на

app/views/devise/mailer/confirmation_instructions.html.erb

Чтобы ссылка всегда генерировалась как SSL, просто настройте вызов link_to:

<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :protocol => "https") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...