이 글은 주로 Yii2에서 세션 간 도메인 공존을 위한 솔루션을 소개합니다. 내용이 꽤 좋아서 지금 공유하고 참고하겠습니다.
앞서 세션 관련 구성에 대해 이야기했습니다. 개발 중에 도메인 간에 세션을 공유하려면 로그인 모듈이 필요한 경우가 많습니다. 로그인하는 데는 한 곳만 필요하며 관련 웹사이트도 마찬가지입니다. 로그인했습니다. 상태입니다. 두 가지 상황이 있습니다. 하나는 9streets.cn과 a.9streets.cn 사이이고 다른 하나는 a.com과 b.com 사이입니다. 지난 며칠 동안 처리 방법을 요약했습니다.
1차 또는 2차 도메인 이름이든, 다른 도메인 이름 아래의 교차 도메인이든, 두 가지 사항을 충족해야 합니다.
클라이언트는 동일한 세션 ID,
세션 데이터에 액세스합니다. 모든 도메인 이름에 해당하는 서버에서 액세스하는 위치는 일관되어야 합니다.
1. 공통 세션 ID에 액세스하는 방법은 주로 현재 세션 ID를 쿠키에 기록하는 것입니다.
쿠키는 다른 도메인 이름으로 액세스할 수 없습니다. 배경 로그인 정보의 도메인 이름이 1차 또는 2차 도메인 이름 아래에 있는 경우 쿠키를 기본 도메인 이름으로 직접 설정합니다. 예:
setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".a.com");
아마도 다음과 같이 질문할 것입니다. 다른 도메인 이름에 있나요? 이는 P3P 기술을 사용하는 간단한 솔루션입니다. 구현 원리는 x.com 웹사이트에 액세스할 때 y.com 프로그램이 y.com 파일을 트리거하여 sessionid 값을 쓰고, sessionid 값을 얻을 수 있다는 것입니다. 값은 데이터베이스에 저장되며 동일한 sessionid 값이면 충분합니다. 이를 위해서는 y.com의 프로그램 파일이 도메인 전체에 걸쳐 액세스 가능해야 합니다. 기본적으로 브라우저는 도메인 전체에 걸쳐 쿠키를 설정할 수 없습니다. 해당 PHP 파일에 추가: header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
2. 세션 데이터의 일관된 저장 위치 구현 방법
세션 데이터는 기본적으로 서버의 tmp 파일에 저장되며, 파일 형태로 존재합니다. 서버 메모리에서는 여기에서 모든 도메인에서 액세스할 수 있도록 수정해야 합니다. 데이터베이스 저장, 파일 저장, 메모리 저장 등을 온라인으로 도입하여 세션 데이터를 저장하기 위해 데이터베이스를 사용하고 웹 사이트의 방문 횟수가 많은 경우 SESSION의 읽기 및 쓰기 작업이 데이터베이스에서 자주 수행되므로 효율성이 높아집니다. 메모리의 존재를 고려할 수 있습니다. 다음 session.rar에서는 데이터 인벤토리 세션의 예를 소개합니다.
yii2에서 이 문제를 해결하기 위해 인터넷에 있는 튜토리얼에 따르면 최종적으로 성공한 구성은 다음과 같습니다. 사용자 및 세션:
$host = explode('.', $_SERVER["HTTP_HOST"]); if (count($host) > 2) { define('DOMAIN', $host[1] . '.' . $host[2]); } else { define('DOMAIN', $host[0] . '.' . $host[1]); } define('DOMAIN_HOME', 'www.' . DOMAIN); define('DOMAIN_USER_CENTER', 'man.' . DOMAIN); define('DOMAIN_API', 'api.' . DOMAIN); define('DOMAIN_EMAIL', 'mail.' . DOMAIN); define('DOMAIN_LOGIN', 'login.' . DOMAIN); define('DOMAIN_IMG', 'img.' . DOMAIN);
위 내용은 이 글의 내용입니다. 모든 내용은, 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
Yii 프레임워크에서 jquery를 사용하는 관련 문제위 내용은 Yii2에서 도메인 이름 간 세션 공존 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!