ruby-on-rails - 用户未登录时如何屏蔽我的登录页面?

标签 ruby-on-rails nginx web

我在 https://example.com 上建立了基于 ruby​​ on rails 的网络平台

我的登陆和关于页面托管在其他主机的 Wordpress 中,地址为 https://examplecms.com .

我想实现的是让用户访问https://example.com蒙面 https://examplecms.com除非他们登录,因为我的平台的仪表板在根路径/中路由。

我试图避免的是用户在 URL https://examplecms.com 中看到的内容.

到目前为止,我已经尝试了一些技巧:

  • 在我的主页/索引 Action Controller 中,我已重定向到 https://examplecms.com如果用户没有登录。但这会失败,因为它仍然在用户的浏览器中显示 CMS url。
  • 在指向 CMS 站点的主页/索引 View 的渲染中使用 Iframe。它有效,因为它仍然正确显示我的网站 URL,但这似乎有点可疑,而且深层链接和导航似乎无法正常工作。

  • 我一直在考虑在代理服务器级别进行操作,使用 .htaccess 甚至使用 DNS 策略,但我无法找到这些策略的解决方案来检测用户何时登录?

    有任何想法吗?

    谢谢

    更新:
    堆:
  • Ubuntu
  • Ruby on Rails
  • Nginx + 乘客
  • 亚马逊 Ec2 + Cloudflare DNS
  • 最佳答案

    您可以使用 http://nginx.org/r/proxy_pass以静默方式将用户重定向到不同的页面,而不更改在 Location 中显示给用户的 URL。浏览器的领域。

    要检查用户是否已登录,您可以通过 http://nginx.org/r/error_page 安装错误处理程序。仅当您的正常页面返回错误时才重定向用户(例如,如果正常的 proxy_pass 导致 403 Forbidden 响应,则根据错误处理程序将用户的请求重定向到替代的 proxy_pass 上游)。

    关于ruby-on-rails - 用户未登录时如何屏蔽我的登录页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49823936/

    相关文章:

    javascript - 适用于 Google 协作平台的自定义 CSS/JS

    sql - 如何从 Rails 事件记录查询中提取 "as alias_name"

    asp.net - .net 核心应用程序套接字在负载下​​泄漏

    html - 在CSS中对齐div元素的背景图像

    Node.js Nginx LetsEncrypt 坏网关

    node.js - 通过 nginx 传递静态内容,通过 nginx 代理node.js jsonrpc请求并直接访问node.js socket.io

    java - 在桌面位置使用 Web 浏览器打开 Microsoft Excel 文件

    ruby-on-rails - 在 ruby​​ on rails 中将 sqlite 更改为 PostgreSQL

    ruby-on-rails - 是否有内置方法从数据库中获取单个 ActiveRecord 属性(忽略内存中的值)?

    ruby-on-rails - 回滚 : multiple calls in a row to the same long-time-response controller