Yii2는 다중 도메인 간 도메인 동기 로그인 및 종료를 실현합니다.

高洛峰
풀어 주다: 2023-03-05 13:24:01
원래의
1415명이 탐색했습니다.

플랫폼 개발 과정에서 프로젝트는 프런트엔드(frontend) www.xxx.com과 백엔드(backend) yun.xxx.com의 두 부분으로 나누어집니다. 바인딩되지 않은 경우 백그라운드는 동기적으로 로그인 및 로그아웃할 수 있지만 도메인 이름을 바인딩한 후에는 세션 범위가 다르기 때문에 유효하지 않습니다. 두 도메인 이름의 세션 범위는 자체 도메인 이름으로만 제한됩니다. 우리의 솔루션은 서로 다른 두 번째 수준 도메인 이름의 범위를 최상위 도메인 이름 xxx.com으로 변경하는 것입니다.

common/config/main.PHP에 다음 코드를 추가합니다:

//跨域session域名配置,获取当前主机名 
$host_array = explode('.', $_SERVER["HTTP_HOST"]); 
//针对com域名,获取顶级域名 
if (count($host_array) == 3) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]); 
} 
//针对com.cn域名 
elseif (count($host_array) == 4) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]. '.' . $host_array[3]); 
} 
else{ 
  //echo "本系统不支持本地访问,请配置域名";exit; 
} 
define('DOMAIN_HOME', 'www.' . DOMAIN); 
define('DOMAIN_YUN', 'yun.' . DOMAIN); 
define('DOMAIN_API', 'api.' . DOMAIN); 
define('DOMAIN_EMAIL', 'mail.' . DOMAIN); 
define('DOMAIN_IMG', 'img.' . DOMAIN);
로그인 후 복사

구성 요소 부분을 수정하고 세션 범위를 변경

'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], 
    ], 
    'session' => [ 
      'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 
      'timeout' => 3600, 
    ],
로그인 후 복사

위 구성을 통과한 후 두 개의 2차 도메인 이름 간에 동기식 로그인 및 로그아웃이 가능합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

Yii2의 다중 도메인 간 도메인 동기화 로그인 및 로그아웃 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿