gpt4 book ai didi

session - 具有两个模型 session 的 Cakephp 身份验证组件

转载 作者:行者123 更新时间:2023-12-03 23:44:29 30 4
gpt4 key购买 nike

我有两个 cakephp2 应用程序在同一个数据库上运行,但相应地具有不同的 Auth 表和不同的 $this->Auth->userModel 值。
身份验证运行良好,一个应用程序的用户无法登录到另一个应用程序。

但是 .. 由于应用程序使用相同的 CAKEPHP session cookie,会发生这种情况:
当来自应用“一”的用户登录时,它可以访问应用“二”中的任何受身份验证保护的操作!

我可能会使用不同的用户角色和 cookie 名称。
但是,为什么 Auth 组件在检查 session 时会忽略 Auth->userModel 设置?有没有办法将其配置为在这种情况下正常工作?

在此先感谢您的任何建议。

最佳答案

如果没有另外配置,AuthComponent 会将经过身份验证的用户记录写入 Auth.User CakePHP 2 中的 session key 。But it can be changed:

AuthComponent::sessionKey

The session key name where the record of the current user is stored. If unspecified, it will be "Auth.User".


(在 CakePHP 1.3 this was different : Auth.{$userModel name} 中)
因此,如果您的应用程序共享一个 session ,它们会这样做,如果 cookie 名称和 Security.salt匹配,登录记录将被共享。
解决这个问题有两种可能:
分开登录
只需设置不同的 AuthComponent::sessionKey为您的两个模型。这将允许他们单独保留登录用户
分开 session
为两个应用程序配置不同的 Cookie 名称和 Salts,因此它们的 session 不能相互覆盖。这可能是更简洁的解决方案,因为它还涵盖了其他 session key 被重复使用的风险。

关于session - 具有两个模型 session 的 Cakephp 身份验证组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538159/

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