当用户登录来自前端时,Yii2登录可以访问后端

时间:2014-09-26 12:02:43

标签: yii2

在yii2高级模板中。

如果我正在做以下操作,即使前端和后端有两种不同的数据库配置,我也可以在不登录的情况下访问后端

  1. 从前端登录页面登录。
  2. 成功登录前端后。
  3. 当我打开后端链接时,它显示已登录。
  4. 后端不需要登录。
  5. 签证 - 反之亦然。
  6. 如何限制?

3 个答案:

答案 0 :(得分:2)

您必须在config / main.php文件中为前端和后端设置不同的Cookie。 例如:

在后端:

'components' => [
        'session' => [
            'name' => 'BACKENDID',   //Set name
            'savePath' => __DIR__ . '/../tmp', //create tmp folder and set path
        ],
    ],

在前端:

'components' => [
        'session' => [
            'name' => 'FRONTENDID',
            'savePath' => __DIR__ . '/../tmp',
        ],
    ],

就是这样。

答案 1 :(得分:0)

Backend / config / main.php

'components' => [
    'session' => [
        'name' => 'PHPBACKSESSID',
        'savePath' => __DIR__ . '/../tmp',
    ],
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'identityCookie' => [
        'name' => '_backendUser', // unique for backend
        'path'=>'/yii-project/backend/web'  // correct path for the backend app.
  ],

前端/配置/ main.php

'components' => [
       'session' => [
        'name' => 'PHPFRONTSESSID',
        'savePath' => __DIR__ . '/../tmp',
    ],
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'identityCookie' => [
        'name' => '_frontendUser', // unique for backend
        'path'=>'/yii-project/frontend/web'  // correct path for the backend app.
  ],

答案 2 :(得分:0)

只需在frontend | backend / config / main.php中删除:

'components' => [
    'session' => [
        // this is the name of the session cookie used for login on the frontend
        'name' => 'advanced-frontend', //or 'advanced-backend'
    ],
]

并将其添加到common / config / main.php

'components' => [
    'session' => [
        // this is the name of the session cookie used for login on the frontend
        'name' => 'blablabla', 
    ],
]