Yii2高级应用程序,前端和后端的不同会话

时间:2015-04-24 11:47:38

标签: session yii2 frontend backend



我试图建立一个Yii2高级项目。为此,我使用了kartik-v的高级应用程序模板。它工作正常,但(正如他刚才提到的here)如果你登录前端然后去后端,你也会登录。所以我想分开前端和后端登录(不同的会话)。我尝试配置身份cookie但它没有工作。
在评论中我发现:"仍然,当前端或后端登录并打开另一个时,它会自动显示登录,因为会话cookie是相同的,PHPSESSID。" 所以我在前端和后端的配置中更改了会话的名称和savePath。有了它,它应该工作,但它没有。
每次进入我的页面时都会出现500内部服务器错误。如果我尝试登录,它只是不起作用,它重定向我但不登录我。我发现如果我没有设置savePath我没有得到错误但仍然没有任何反应。如果检查了“记住我'选项我收到错误消息,但登录工作..所以我不知道现在该怎么办。我的主配置文件:


后端:

'components' => [
    'session' => [
        'name' => 'backend_sessid',
        'savePath' => __DIR__ . '/../tmp',
    ],
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'identityCookie' => [
            'name' => '_backendUser',
            'path' => '/projectname/backend/web'
        ]
    ],

前端:

'components' => [
    'session' => [
        'name' => 'frontend_sessid',
        'savePath' => __DIR__ . '/../tmp',
    ],
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'identityCookie' => [
            'name' => '_frontendUser',
            'path' => '/projectname'
        ]
    ],

1 个答案:

答案 0 :(得分:1)

一种方法是使用此处描述的基于角色的访问控制:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

这样,您可以为前端用户和后端用户设置不同的角色。如果具有不同权限的用户尝试访问错误的站点区域,您可以将他注销并将其重定向到登录页面。