마 젠토 2 백엔드 세션 시간 초과


53

Magento 1.x에서 백엔드 세션 시간 초과는 다음을 통해 설정되었습니다.
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)

처음에는 Magento 2.0에서 이것을 설정하는 방법에 대한 질문이 있었지만 Magento 2.0과 Magento 2.1에는 차이점이 있습니다.

Magento 2.0의 경우 : Arkadii Chyzhov는이를 설정하는 방법을 지적했습니다 (아래 참조).

Magento 2.1의 경우 : fschmengler가 해결책을 제안했습니다 (아래 참조).

그러나 M 2.1은 백엔드를 통한 간단한 솔루션을 제공하지 않는 것으로 보입니다. 아무도 M 2.1에 대한 추가 솔루션을 제안 할 수 있습니까?

답변:


82

저장소> 설정> 구성> 고급> 관리> 보안> 관리 세션 수명 (초)

또한이 매개 변수를 데이터베이스에 직접 설정할 수 있습니다. 경로 아래에 값을 넣으십시오.

관리자 / 보안 / 세션 _lifetime

core_config_data 테이블 에서

최신 정보

Magento 2.1 관리자 쿠키 수명 = 저장소> 설정> 구성> 고급> 관리자> 보안> 관리자 세션 수명 (초) 또는 사용자가 브라우저를 닫을 때까지

이후 젠토 2.1 로 관리자 쿠키 수명을 소개하고, "가까운 브라우저에 만료" 함께 가치 Stores >Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds). 즉, 세션 수명 시간은 Stores > Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds)브라우저를 닫을 때 또는 닫을 때의 값과 같습니다 .

또는 fschmengler의 답변 에서 제안한 것처럼 admin 쿠키에 대한 새로운 값을 설정할 수 있습니다


M2 웹 사이트에서 계층 탐색 기능을 조정하는 데 관심이 있으십니까?
Els den Iep

@ElsdenIep pls. 프로필에서 내 연락처 정보 찾기
Arkadii Chyzhov

해당 값에 대한 데이터베이스의 열이 무엇인지 알고 있으므로 프로그래밍 방식으로 변경할 수 있습니까?
jojman

50400으로 설정했지만 약 20 분 후에도 로그 아웃됩니다.
OZZIE

:) 내 대답은 아래를 참조 @ArkadiiChyzhov
오지

16

관리자 프로세스를 더 잘 이해하려면 첨부 된 이미지 스크린 샷을 확인하십시오.

상점-> 설정-> 구성-> 고급-> 관리자-> 보안-> 관리 세션 수명 (초)으로 이동하십시오.

그리고 스크린 샷을 확인하십시오. 여기에 이미지 설명을 입력하십시오


10

마 젠토 2.1 이상 솔루션

Magento 2.1부터 관리자 세션 수명은 항상 "세션"입니다 (예 : 브라우저가 닫힐 때까지). 이되었습니다 보안상의 이유로 소개되었을 수 있습니다.

관련 코드는 다음과 Magento\Backend\Model\Session\AdminConfig같습니다

/**
 * Set session cookie lifetime to session duration
 *
 * @return $this
 */
protected function configureCookieLifetime()
{
    return $this->setCookieLifetime(0);
}

이 동작을 변경하려면 다음 인터셉터 메소드를 사용하여이 클래스의 플러그인을 추가하십시오.

public function beforeSetCookieLifetime()
{
    $lifetime = $this->scopeConfig->getValue(
        \Magento\Framework\Session\Config::XML_PATH_COOKIE_LIFETIME,
        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
    return [$lifetime, \Magento\Framework\Session\Config::COOKIE_LIFETIME_DEFAULT];
}

여기서 $this->scopeConfig의 인스턴스이어야 \Magento\Framework\App\Config\ScopeConfigInterface생성자 파라미터를 통해 주사.

이런 식으로 쿠키 수명은 프론트 엔드에서와 같이 구성에서 사용됩니다.

의 구성합니다 상점> 설정> 고급> 관리자 보안> 세션 수명이 더 이상 쿠키에 영향을주지 않습니다! Redis 세션 수명을 결정하는 데 사용되므로 쿠키 수명을 늘리면이 값도 늘려야합니다.


이 보안 이유를 설명 할 수 있는지 궁금합니다. 내 관점에서 볼 때 관리자 쿠키 수명을 0으로 설정하면 관리자 세션 수명 시간을 정의하는 'admin / security / session_lifetime'을 사용하고 쿠키 수명에 대해 2.1부터 암시 적으로 2.1에 의존하는 불일치와 명백한 동작이 발생하지 않습니다.
Arkadii Chyzhov

1
관리자가 "로그 아웃"하지 않고 창을 닫고 동일한 PC에 액세스하는 사람이 이미 로그인 한 경우를 방지하는 것으로 가정했습니다. 이는 중대한 위협이 아니며 잘못된 결정이라는 데 동의합니다. 이 "기능"을 명확하지 않게하기 위해.
Fabian Schmengler

그러나 나는 책임있는 커밋을 검색하고 이것을 찾았습니다 : github.com/magento/magento2/commit/… "MAGETWO-49092 : 관리자 로그인 페이지의 잘못된 폼 키" 또는 덜 우연하고 문서화되지 않은 부작용.
Fabian Schmengler

브라우저를 닫지 않고 세션이 계속 만료되므로 계속 진행해야합니다.
Matt Cosentino

1
@Volvox는주의 깊게 살펴보면 다음과 같습니다. 플러그인은 setCookieLifetime매개 변수를 사용하는 공용 메소드입니다.
Fabian Schmengler

6

여기에주의 사항, 허용되는 대답은 작동하지만 magento 2는 기본 php 폴더를 사용하여 세션 파일을 저장합니다 (php로 구성한 경우).

09,39 *     * * *     root   [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean

그런 다음 PHP 설치에 의해 시스템 cron에 추가됩니다.

그럼 당신은 할 수 있습니다

  • 그 크론을 비활성화
  • 또는 더 나은 : gc_maxlifetimephp.ini의 증가 (상한이 될 것이므로)

2

설정을 수정하지 않은 다른 솔루션은 auto refresh addon브라우저에 설치하고 시간을 설정하는 것입니다 (60 초).

60 초마다 페이지를 자동으로 새로 고침하여 세션 수명이 만료되는 것을 방지하고 다른 탭에서 작업을 시작할 수 있습니다.

나는 그것을 사용 Easy Auto Refresh했고 그것은 나에게 잘 작동한다.


그런 "솔루션"에 바보가되지 마십시오. 완전히 받아 들일 수 없습니다.
sellio

2

웹 및 db에 여러 개의 VM / 서버를 사용하고 있고 시간이 동기화되지 않은 경우에도 문제가 발생했습니다.

따라서 위의 모든 옵션이 작동하지 않으면 web 및 db에 여러 서버를 사용할 때 두 서버의 타임 스탬프 / 날짜를 확인하십시오.


1

이유를 모르지만 일부 사용자에게는 백엔드에서 관리 세션 수명을 설정해도 작동하지 않으므로 몇 가지 해결책을 찾았습니다.

  1. php.ini에서 session.gc_maxlifetime을 1440에서 원하는 초 수로 변경하십시오. (이 솔루션은 magento 2.2.0 및 2.2.1에서 테스트되었습니다.)

  2. .htaccess에서 "php_value session.gc_maxlifetime 28800"또는 원하는 시간 (초)을 추가하십시오.

  3. 수명을 수동으로 설정합니다. 이동 공급 업체 / 젠토 / 모듈 암호화 키의 / etc / config.xml에 당신이 원하는 시간 (초) 어떤 수를 900로 변경.

이 솔루션 중 하나가 다른 솔루션에도 적용되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.