gpt4 book ai didi

ruby-on-rails - Rails,设计多个模型登录及其 session

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:41 26 4
gpt4 key购买 nike

我有两个由 devise 生成的模型:PartnerAdmin。他们每个人都有自己的 session 电流等。有些 Controller 只需要 Admin 登录,有些 Controller 需要 PartnerAdmin 登录。

:authenticate_admin!:authenticate_partner! 方法将在我的 Controller before_action 中调用。

我还使用 CanCanCan 来定义这两个角色。

这给出了多个问题:

  1. 如果我以 Partner 身份登录,然后我打开了必须登录 Admin 的页面,然后我登录了,这意味着我将有两个 session 一次?
  2. 当我也是 Admin 时,我以 Partner 身份登录,这意味着我需要销毁 Admin 的 session 。如何让 Devise 在当前模型登录时销毁其他模型 session ?
  3. 我是否需要在需要 AdminPartner 的 Controller 中添加类似这样的内容?

    before_action :authenticate_partner!
    before_action :authenticate_admin!
  4. 最后一个问题是:如何让 Partners 打开页面(即访问 Controller )只有 CanCanCan 允许?

我想使用 authorize_resource,它只要求每个 Controller 一个模型。

最佳答案

  1. 是的。每个模型有两个独立的设计范围,使用不同的 session 变量。
  2. 当您登录另一个范围时,Devise 不会破坏范围 session ,但您可以手动进行。有设计方法 sign_out(scope)。在您的情况下,您可以在需要时调用 sign_out(:partner)sign_out(:admin) 。还必须有类似 sign_out_partnersign_out_admin 的方法,由 Devise 自动为您的范围提供。另外,请注意 config.sign_out_all_scopes 设计选项。
  3. 是的,这些过滤器限制了对 Controller 操作的访问。
  4. 我希望这会有所帮助 How to integrate CanCan with multiple devise models?

关于ruby-on-rails - Rails,设计多个模型登录及其 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29193015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com