用户未登录时如何屏蔽我的登录页面?

我通过https://example.com在rails上构建了基于ruby的Web平台

我的着陆页和页面在https://examplecms.com上的其他主机中的Wordpress中托管。

我想要达到的目的是让用户访问https://example.com获取被屏蔽的https://examplecms.com,除非他们已登录,因为我的平台的仪表板在根路径/中路由。

我想避免的是用户在URL https://examplecms.com中看到。

我已经尝试了很多技巧:

  • 在我的家庭/索引操作控制器中,如果用户未登录,我已将其重定向到https://examplecms.com。但由于它仍在用户浏览器中显示CMS网址,因此失败。
  • 在指向CMS站点的主页/索引视图的呈现中使用Iframe。 它的作品,因为它仍然提供我的网站的网址正确,但这似乎有点腥也深连接和导航似乎并没有正常工作。
  • 我一直在考虑在代理服务器级别上使用.htaccess甚至使用DNS策略,但我无法想出这些策略的解决方案以检测用户何时登录或不登录?

    有任何想法吗?

    谢谢

    更新:堆栈:

  • Ubuntu的
  • Ruby on Rails
  • Nginx +乘客
  • Amazon Ec2 + Cloudflare DNS

  • 您可以使用http://nginx.org/r/proxy_pass以静默方式将用户重定向到其他页面,而无需更改在浏览器的“ Location字段中显示给用户的URL。

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


    你正在寻找的是路由范围。 我正在使用Devise进行身份验证,它提供助手来完成您想要的任务,但我毫不怀疑您可以根据需要进行调整。 当用户点击网站上的任何页面时,他们会自动重定向到登录页面。 如果他们已登录,他们将被重定向到他们输入的主页/ URL。

    authenticated :user do
      root to: 'titles#index'
    end
    
    devise_scope :user do
      root to: 'devise/sessions#new'
    end
    

    创建一个子域

    对于您的WordPress托管的网页内容,您可以在您的托管服务提供商上创建一个非常简单的子域名,例如blog.example.com ,它是blog.example.com的别名

    使用设备宝石进行验证

    您可以使用设备gem来认证用户并将用户路由到子域。 当用户点击/ root_path时。

    链接地址: http://www.djcxy.com/p/849.html

    上一篇: How to mask my landing page when user not signed in?

    下一篇: Any mobile ad platform that allow AJAX requests?