【问题标题】:Yii2 Advanced app, different sessions for frontend and backendYii2 高级应用,前端和后端的不同会话
【发布时间】:2015-04-24 11:47:37
【问题描述】:



我正在尝试建立一个 Yii2 高级项目。为此,我使用了 kartik-v 的高级应用模板。它工作得很好,但是(正如他刚才提到的here)如果你登录到前端然后转到后端,你也会登录。所以我想分开前端和后端登录(不同的会话)。我尝试配置身份 cookie,但它不起作用。
在 cmets 中我发现:“仍然,当前端或后端登录并且我们打开另一个时,它显示自动登录,因为会话 cookie是一样的,PHPSESSID。” 所以我在前端和后端的配置中更改了会话的名称和保存路径。有了这个它应该工作,但它没有。
每次访问我的页面时,我都会收到 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'
        ]
    ],

【问题讨论】:

    标签: session yii2 frontend backend


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多