Я установил и настроил расширенный шаблон yii2. Все говорят, что они хотят отделить входной логин от входа в систему, но я хочу сделать наоборот.Yii2 Advanced Template
Что я хочу, когда я вхожу в систему для входа в систему, я также должен оставаться на стороне сервера. Я пробовал разные конфигурации, но когда я вхожу в систему для входа в интерфейс и перехожу в бэкэнд-зону, я гость!
интерфейс: photography.dev бэкенд: admin.photography.dev
По умолчанию все говорит, что yii2 расширенный шаблон имеет тот же логин для обоего: внешнего и внутреннего, но в моем случае это не так.
EDIT: обновление с полным бэкэндом, фронтэнда и общих конфигов
Общие:
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
],
];
Backend:
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-backend',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'backend\controllers',
'bootstrap' => ['log'],
'modules' => [],
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'enableSession' => true,
'idParam' => '_user',
'identityCookie' => [
'name' => '_user',
'path'=>'/'
]
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'/' => 'site/index',
'<alias:login|logout|about|contact>' => 'site/<alias>'
]
],
'urlManagerFrontEnd' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'http://photography.dev',
'enablePrettyUrl' => true,
'showScriptName' => false,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
],
'params' => $params,
];
Backend среда Dev:
$config = [
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => '',
],
],
];
Frontend:
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php'));
return [
'id' => 'app-frontend',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'frontend\controllers',
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'enableSession' => true,
'idParam' => '_user',
'identityCookie' => [
'name' => '_user',
'path'=>'/'
]
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'/' => 'site/index',
'index' => 'site/index',
'<alias:login|logout|about|contact|index>' => 'site/<alias>'
],
],
'urlManagerBackend' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'http://admin.photography.dev',
'enablePrettyUrl' => true,
'showScriptName' => false,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
],
'params' => $params,
];
Frontend DEV среда:
$config = [
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'iGk90GAbgQg2jT5aQ5PMcG1A3A9E_iNq',
],
],
];
Даже с указанием, что вы хотите, чтобы ваш cookie администратора был на фото.dev? Нет другой конфигурации, перекрывающей это? – JonathanStevens
Я что-то обнаружил: когда я открыл инструменты для разработчиков и перешел на Ресурсы - Cookies Я нашел это: ** admin.photography.dev ** - это имя файла cookie, когда я перехожу на http://admin.photography.dev ** фотография.dev ** - это имя файла cookie, когда я перехожу на http://photography.dev Поэтому, изменяя cookieParams для компонента сеанса, все, что он делает, добавляет PHPFRONTENDBACKENDSESSID к файлам cookie «admin.photography.dev» и «photography.dev» с доменом «фотография.dev». – florinmtsc
Я проверил, и нет другой конфигурации, перекрывающей его. Я также добавил тот же ключ проверки cookie как для интерфейса, так и для бэкэнд. Он добавляет cookie PHPFRONTENDBACKENDSESSID в оба домена, и ничего больше. Я даже не могу войти в систему, когда я вхожу в систему, он перенаправляется на главную страницу, а затем снова приглашаю. То же самое для обоих приложений (frontend, backend) – florinmtsc