我有条件地在我的应用程序中重定向到 SSL。I User 和 Admin 模型,都配置了devise_for
. 我正在使用rails_admin
Admin 模型,以及我自己的 Users 模型的 CMS 东西。
在application_controller
我有一个 before 过滤器check_ssl
,它重定向到 SSL ifuser_signed_in? || controller_name == 'registrations' || controller_name == 'sessions'
和!request.ssl?
.
我通过查看日志验证了逻辑。
问题
- 当我尝试访问 /admin 以获取我的 RailsAdmin 界面时,它检测到我没有登录并正确重定向到
/admins/sign_in
. - 我的 SSL
before_filter
运行并发现它当前不是 SSL。我的日志:ssl? is false and fullpath is /admins/sign_in
应该使用ssl 重定向到https://foo.com/login ssl?为真且完整路径为 /login
/login
是我的User
模型的登录路径,而不是我的Admin
模型。
重定向代码的字面意思是:
redirect_to({:protocol => 'https'}, :flash => flash)
这里发生了什么?