已解决-Magento 2-无法登录到管理员(无错误消息),停留在登录屏幕上


16

这不是一个问题,而是对一个很老但又经常发生的问题的解答。我记得在我设置Magento 1.9的日子里在此方面挣扎,而这次在Magento 2.1.4上又发生了。我完全忘记了我当时是如何解决的,所以这次我在这里记录我的答案,以防万一有人需要它。

问题陈述

基本上,您是在设置Magento 2.1商店,满足所有服务器要求,添加了SSL,设置了网站,商店和商店视图并填写了商店配置,只是突然意识到您无法再登录到管理面板。没有错误,浏览器控制台没有任何问题,Chrome / Firefox浏览器也没有问题。您清除会话并缓存也无济于事。您找到的答案一直指向会话和缓存设置,但是您确实遵循了文档,但仍然无法使用。


首先发布问题,然后在下面单击“ 回答您的答案”并添加答案。
Qaisar Satti

得到它了。我根据您的要求在底部添加了官方答案。
Mubashar Aftab

Answers:


27

紧急修复

无论此解决方案是否有效,请首先尝试这些步骤。您将能够登录,这意味着您位于正确的页面上。如果您仍然无法登录,则您的问题很可能与我发布的问题有所不同,请您自担风险。

  • 转到您的数据库。如果您具有phpMyAdmin,请执行以下操作:
  • 单击xxx_core_config_data表(xxx_是您在安装过程中可能设置的其他表前缀)
  • 选中表格后,点击右侧的“搜索”标签
  • 在搜索菜单的“路径”下,选择下拉列表(LIKE%...%),然后在其旁边的字段中插入“ cookie”。这将搜索所有在其路径值中包含“ cookie”的表行。
  • 删除以下内容的VALUE(如果您看不到其中的某些内容,请忽略。可能尚未设置,因此可以忽略):
    • web/cookie/cookie_domain
    • web/cookie/cookie_httponly
    • web/cookie/cookie_lifetime
    • web/cookie/cookie_path

而已。现在,刷新您的管理页面,然后尝试登录。它应该可以工作。如果是这样,那么现在让我们解决问题的症结。

问题

在大多数情况下,遵循该指南的要求是将Cookie域存储为.domain.com(它需要一个子域),但是存储名称将http://domain.com作为其基本URL 存储。

修复

有两种方法可以解决此问题。

如果您不打算将子域用于Cookie存储,则可以将“存储”->“配置”->“ Web”->“ Cookie域”中的Cookie域设置另存为(domain.com),且不带前括号和括号。

如果您打算将商店设置为将来可用,并允许存储子域Cookie,则应将Cookie域设置为(.domain.com),且前一个句点且不带括号。但是,在您的基本URL下Stores -> Configuration -> Web -> Base URL,如果要使用SSL ,则添加www到您的域名,例如http://www.domain.comhttps安全基本URL中。

此外,其他Cookie设置如下: Cookie Lifetime-86400(据我所知,您不需要此项,可以将其保留为空白并选中“使用系统值”,因为现在Magento出于安全原因保留了该会话)。 Cookie Path--- Use HTTP Only是的 Cookie Restriction Mode-由您决定。如果启用此功能,它将在前端显示消息,要求用户同意存储cookie。

注意:再次,此内容仅供我将来参考,也适用于可能像我一样陷入这种挫败感的任何人。


拯救了我的一天!谢谢!我怀疑我上次进行的cookie限制模式设置有问题,因此问题确实出在Cookie域值设置为“ .domain.com”上。我将值从数据库web / cookie / cookie_domain更改为“ domain.com”,并能够成功登录管理区域。
Iveta Allogenes


1

在建立其他开发人员之前完成的新项目后,我经历了这一过程。最后,这就是我修复此问题的方式。

core_config_data表格中,我搜索了路径web/cookie/cookie_domain。然后发现该域与当前项目的域不同。所以我只是将其更改为与当前项目域相同。然后,管理员登录有效。


0

Magento安装后不久,如果您遇到以下问题:成功安装后,管理员将无法登录。Magento2:成功安装后,在magento2管理员登录页面上未找到错误404。C。管理页面上的链接不起作用。

执行以下步骤

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

这应该解决问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.