用户未登录时如何屏蔽我的登录页面?
我通过https://example.com在rails上构建了基于ruby的Web平台
我的着陆页和页面在https://examplecms.com上的其他主机中的Wordpress中托管。
我想要达到的目的是让用户访问https://example.com获取被屏蔽的https://examplecms.com,除非他们已登录,因为我的平台的仪表板在根路径/中路由。
我想避免的是用户在URL https://examplecms.com中看到。
我已经尝试了很多技巧:
我一直在考虑在代理服务器级别上使用.htaccess甚至使用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