Jon*_*son 13 authentication cookies session cakephp cakephp-2.0
我有两个在同一个数据库上运行的cakephp2应用程序,但是相应地具有不同的Auth表和不同的$ this-> Auth-> userModel值.身份验证效果很好,一个应用的用户无法登录其他应用.
但是,当应用程序使用相同的CAKEPHP会话cookie时,会发生以下情况:当应用程序"one"的用户登录时,它可以访问应用程序"两个"中的任何受Auth保护的操作!
我可能会使用不同的用户角色和cookie名称.但是,为什么Auth组件在检查会话时忽略了Auth-> userModel设置?有没有办法将其配置为在这种情况下正常工作?
在此先感谢您的任何建议.
pix*_*tik 11
如果没有另外配置,AuthComponent会将经过身份验证的用户记录写入Auth.UserCakePHP 2中的会话密钥.但是可以更改:
AuthComponent :: sessionKey
存储当前用户记录的会话密钥名称.如果未指定,则为"Auth.User".
(在CakePHP 1.3 ,这是不同的:Auth.{$userModel name})
因此,如果您的应用共享会话,他们会这样做,如果Cookie名称和Security.salt匹配,则会共享已登录的记录.
有两种可能性来解决这个问题:
只需AuthComponent::sessionKey为两个型号设置不同的颜色即可.这将允许他们单独保留登录用户
为两个应用程序配置不同的Cookie名称和Salt,因此它们的会话不能相互覆盖.这可能是更清晰的解决方案,因为它还涵盖了其他会话密钥被重复使用的风险.
| 归档时间: |
|
| 查看次数: |
5152 次 |
| 最近记录: |