Yii2에서 도메인 이름 간 세션 공존 문제를 해결하는 방법
이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











springboot 프로젝트 프로덕션 세션아웃 시간 초과에서 문제가 발견되었습니다. 문제 설명: 테스트 환경에서는 세션아웃 구성이 적용되었는지 확인하기 위해 application.yaml을 변경하여 세션아웃을 구성했습니다. , 프로덕션 환경에 도착하면 만료 시간이 8시간으로 직접 설정되었습니다. 그런데 정오에 고객으로부터 프로젝트 만료 시간이 짧게 설정되어 있다는 피드백을 받았습니다. 30분 동안 아무 작업도 수행하지 않으면 세션이 만료되어 반복 로그인이 필요합니다. 개발 환경 처리 문제를 해결합니다. springboot 프로젝트에는 Tomcat이 내장되어 있으므로 프로젝트의 application.yaml에 구성된 세션 아웃이 효과적입니다. 프로덕션 환경: 프로덕션 환경 릴리스는 다음과 같습니다.

세션 실패는 일반적으로 세션 수명 만료 또는 서버 종료로 인해 발생합니다. 해결 방법은 다음과 같습니다. 1. 세션 수명을 연장합니다. 3. 쿠키를 사용합니다. 4. 세션 관리 미들웨어를 사용합니다.

PHPSession의 도메인 간 문제 해결 프런트엔드와 백엔드 분리 개발에서 도메인 간 요청이 표준이 되었습니다. 도메인 간 문제를 처리할 때 일반적으로 세션 사용 및 관리가 포함됩니다. 그러나 브라우저 원본 정책 제한으로 인해 기본적으로 도메인 간에 세션을 공유할 수 없습니다. 이 문제를 해결하려면 도메인 간 세션 공유를 달성하기 위한 몇 가지 기술과 방법을 사용해야 합니다. 1. 도메인 간 세션을 공유하기 위한 쿠키의 가장 일반적인 사용

새로 고침 후 PHP 세션이 사라지는 문제에 대한 해결 방법: 1. "session_start();"를 통해 세션을 엽니다. 2. 모든 공개 구성을 PHP 파일에 작성합니다. 3. 변수 이름은 배열 첨자와 같을 수 없습니다. 4. phpinfo에서 세션 데이터의 저장 경로를 확인하고 파일 디렉터리의 sessio가 성공적으로 저장되었는지 확인합니다.

PHP 세션(Session)을 사용하다 보면 한 파일에서는 정상적으로 세션을 읽을 수 있지만 다른 파일에서는 읽을 수 없는 경우가 있습니다. 세션 데이터는 전체 애플리케이션에서 공유되어야 하기 때문에 혼란스러울 수 있습니다. 이 기사에서는 여러 파일에서 PHP 세션 데이터를 올바르게 읽고 쓰는 방법을 설명합니다.

1. 세션 기반 SMS 로그인 구현 1.1 SMS 로그인 흐름도 1.2 SMS 인증코드 전송 구현 프런트엔드 요청 설명: 요청 방법 설명 POST 요청 경로/사용자/코드 요청 매개변수 전화(전화번호) 반환 값 백엔드 인터페이스 없음 구현: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1인 경우 휴대폰 번호를 확인합니다.

문제: 오늘 프로젝트에서 설정 시간 초과 문제가 발생했으며 SpringBoot2의 application.properties에 대한 변경 사항이 적용되지 않았습니다. 해결 방법: server.* 속성은 SpringBoot에서 사용하는 내장 컨테이너를 제어하는 데 사용됩니다. SpringBoot는 ServletWebServerFactory 인스턴스 중 하나를 사용하여 서블릿 컨테이너의 인스턴스를 생성합니다. 이러한 클래스는 server.* 속성을 사용하여 제어되는 서블릿 컨테이너(tomcat, jetty 등)를 구성합니다. 애플리케이션이 Tomcat 인스턴스에 war 파일로 배포되면 server.* 속성이 적용되지 않습니다. 적용되지 않습니다.

Vue는 최신 웹 애플리케이션을 구축하는 데 널리 사용되는 JavaScript 프레임워크입니다. Vue를 사용하여 애플리케이션을 개발할 때 종종 다른 서버에 있는 다양한 API와 상호 작용해야 하는 경우가 있습니다. 도메인 간 보안 정책 제한으로 인해 Vue 애플리케이션이 하나의 도메인 이름에서 실행 중인 경우 다른 도메인 이름의 API와 직접 통신할 수 없습니다. 이 기사에서는 Vue에서 도메인 간 요청을 수행하는 몇 가지 방법을 소개합니다. 1. 프록시 사용 일반적인 도메인 간 솔루션은 프록시를 사용하는 것입니다.
