【发布时间】:2020-10-23 07:35:56
【问题描述】:
我有一个标准的 Rails 应用程序,带有用于身份验证的 Devise。我有第二个安装了 Helpy.io 的应用程序(也是设计)。我正在寻找两种情况:
- 主站点上的经过身份验证的用户可以访问帮助站点
- 同步用户数据库,登录主数据库后,您会自动登录帮助站点并可以打开工单等。
这是我尝试过的选项 1:
我在两个站点上设置了相同的SECRET_KEY_BASE 和SESSION_STORE,并且在 session_store.rb 中:
Rails.application.config.session_store :cookie_store, key: ENV['SESSION_STORE'], domain: 'mydomain'
在我的帮助站点上,我有一个应用程序控制器 before_action,如果特定会话变量为 nil,它会重定向到主站点(如果您注销,则会在主站点上清除)。
什么有效
如果我在主站点上进行身份验证,然后访问帮助站点,一切正常。我可以浏览帮助站点等,但我没有登录(目前这对于选项 1 来说很好)。我的用户可以浏览帮助站点并手动打开工单。如果我在主站点上注销并转到帮助站点,我的重定向就会启动,我最终会回到主应用程序登录页面。
什么是破碎的
如果我从帮助站点导航回主站点,我会自动退出。我仍然可以访问帮助站点。如果我重新登录主站点再次正常工作,直到我返回帮助站点并重新开始该过程。
问题
我从哪里开始寻找在 Devise 或其他任何地方(假设是 Devise)中被清除的内容等,以使我的应用认为我不再经过身份验证?
【问题讨论】:
-
这听起来像是 JWT 的用途。我读过它们但没有使用它们,但它们可能值得研究。
标签: ruby-on-rails devise