Решено - Magento 2 - Невозможно войти в систему для администратора (нет сообщения об ошибке) застрял на экране входа

16

Это не вопрос, а скорее ответ на проблему, которая довольно старая, но повторяется. Я помню, как боролся с этим в те дни, когда я настраивал Magento 1.9, и это снова произошло на этот раз на Magento 2.1.4. Я полностью забыл о том, как я это исправил тогда, поэтому на этот раз я документирую свой ответ на случай, если кому-то это тоже понадобится.

Постановка задачи

По сути, вы настраивали свое хранилище Magento 2.1, выполнили все требования к серверу, добавили SSL, настроили свой веб-сайт, просмотр магазина и магазина и заполнили конфигурацию магазина только для того, чтобы понять, что внезапно вы больше не сможете войти в панель администратора. В консоли браузера нет ошибок, нет никаких проблем с браузером Chrome / Firefox. Вы очищаете сеансы и кеш тоже безрезультатно. Вы нашли ответы, которые продолжают указывать на сеансы и настройки кэша, но вы следовали документации, и она все еще не работает.

Мубашар Афтаб
источник
сначала опубликуйте вопрос затем в ниже нажмите на ответ и добавьте ответ на свой вопрос.
Кайсар Сатти,
Понял. Я добавил официальный ответ внизу согласно вашему запросу.
Мубашар Афтаб

Ответы:

26

Чрезвычайная ситуация

Работает ли это решение, попробуйте сначала выполнить эти шаги. Вы сможете войти, что означает, что вы находитесь на правильной странице. Если вы по-прежнему не можете войти в систему, ваша проблема, скорее всего, отличается от той, которую я публикую, действуйте на свой страх и риск.

  • Зайдите в свою базу данных. Если у вас есть phpMyAdmin, сделайте следующее:
  • Нажмите на xxx_core_config_dataтаблицу (xxx_ - дополнительный префикс таблицы, который вы могли установить во время установки)
  • Как только таблица выбрана, перейдите на вкладку «Поиск» с правой стороны
  • В меню поиска в разделе «путь» выберите раскрывающийся список (LIKE% ...%) и вставьте «cookie» в поле рядом с ним. Это будет искать все строки таблицы, которые содержат «cookie» в своем значении пути.
  • Удалите ЗНАЧЕНИЕ следующего (если вы не видите некоторые из них, просто проигнорируйте. Возможно, он еще не был настроен, поэтому вы можете его опустить):
    • web/cookie/cookie_domain
    • web/cookie/cookie_httponly
    • web/cookie/cookie_lifetime
    • web/cookie/cookie_path

Вот и все. Теперь обновите страницу администратора и попробуйте войти. Это должно работать. Если это произойдет, теперь давайте рассмотрим суть проблемы.

Проблема

В большинстве случаев, следуя руководству, мы просим нас сохранить домен cookie как домен .domain.com, который ожидает субдомен, но имя магазина сохраняется http://domain.comкак его основной URL.

Исправление

Есть два способа решить эту проблему.

Если вы не собираетесь использовать поддомен для хранения файлов cookie, вы можете сохранить настройки домена cookie в разделе «Магазины» -> «Конфигурация» -> «Интернет» -> «Домен cookie» как (domain.com) без предшествующего периода и скобок.

Если вы планируете сделать свой магазин готовым к будущему и разрешить хранение файлов cookie для поддоменов, вам следует установить для домена cookie значение ( .domain.com) с предыдущим периодом и без скобок. Однако в базовом URL-адресе Stores -> Configuration -> Web -> Base URLдобавьте wwwк своему доменному имени, например, http://www.domain.comи httpsв защищенный базовый URL-адрес, если вы используете SSL (что следует).

Кроме того, другие настройки Cookie Lifetimecookie таковы: - 86400 (насколько я понимаю, вам это не нужно, и вы можете оставить его пустым и проверить «использовать системное значение», потому что теперь Magento сохраняет сеанс по соображениям безопасности). Cookie Path- / Use HTTP Only- Да Cookie Restriction Mode- до вас. Если вы включите это, он будет отображать сообщение на внешнем интерфейсе с запросом согласия пользователя на сохранение файлов cookie.

Примечание: еще раз, это для моих собственных будущих справочных целей и для любого, кто может столкнуться с этим разочарованием точно так же, как я сделал.

Мубашар Афтаб
источник
Спас мой день! Благодарность! Я подозревал проблемы с настройками режима ограничения файлов cookie, которые я установил в прошлый раз, поэтому проблема действительно заключалась в значении домена cookie, установленном в «.domain.com». Я изменил значение с базы данных web / cookie / cookie_domain на «domain.com» и смог успешно войти в админку.
Ивета Аллогенес
1

Быстрая починка:

Добавьте или обновите записи веб-URL в https: // безопасные URL-адреса для следующих записей конфигурации в базе данных

В таблице> core_config_data установите ниже значение для вашего магазина:

  1. web / unsecure / base_url => ' https://yoursiteurl.com/ '

  2. web / secure / base_url => ' https://yoursiteurl.com/ '

Сэчин
источник
1

Я испытал это после настройки нового проекта, сделанного ранее другими разработчиками. С моей стороны, вот как я это исправил.

В core_config_dataтаблице я искал путь web/cookie/cookie_domain. А потом выяснилось, что домен не совпадает с доменом текущего проекта. Поэтому я просто изменил его так, чтобы он совпадал с текущим доменом проекта. А потом после этого админский логин работает.

phagento
источник
0

Вскоре после установки Magento, если у вас возникнут следующие проблемы: a. Администратор не может войти в систему после успешной установки b. Magento2: Ошибка 404 не найдена на странице входа администратора magento2 после успешной установки. с. Ссылки на странице администратора не работают.

Выполните следующие шаги

a. Add the extra code to the **Validator.php** file which you will generally find from below given system path.
     Path: C:\xampp\htdocs\<Your Magento Folder>\vendor\magento\framework\View\Element\Template\File

     /**
     * Checks whether path related to the directory
     *
     * @param string $path
     * @param string|array $directories
     * @return bool
     */
    protected function isPathInDirectories($path, $directories)
    {
        if (!is_array($directories)) {
            $directories = (array)$directories;
        }
        $realPath = $this->fileDriver->getRealPath($path);
        **$realPath = str_replace('\\', '/', $realPath);   <<<====== Extra Code**
        foreach ($directories as $directory) {
            if (0 === strpos($realPath, $directory)) {
                return true;
            }
        }
        return false;
    }

b. This will regenerate all the files
      # php -d memory_limit=1G bin/magento setup:static-content:deploy -f


c. This will flush all the cache from the 2 directories var and generated
      Delete files form the folowing folders
        1. var 
        2. generated

Это должно решить проблему

Аллен
источник