我有条件地在我的应用程序中重定向到 SSL。I User 和 Admin 模型,都配置了devise_for. 我正在使用rails_adminAdmin 模型,以及我自己的 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)
这里发生了什么?