찾다
백엔드 개발PHP 튜토리얼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);

여기서 구성 항목의 사용자 및 세션에 도메인을 작성했습니다(예: 'domain'=>'.baidu.com'). 따라서 판단할 필요가 없습니다. .

위 내용은 이 글의 내용입니다. 모든 내용은, 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

Yii 프레임워크에서 jquery를 사용하는 관련 문제


위 내용은 Yii2에서 도메인 이름 간 세션 공존 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
SpringBoot Session怎么设置会话超时SpringBoot Session怎么设置会话超时May 15, 2023 pm 02:37 PM

问题发现springboot项目生产session-out超时问题,描述下问题:在测试环境通过改动application.yaml配置session-out,经过设置不同时间验证session-out配置生效,于是就直接设置了过期时间为8小时发布到了生产环境。然而中午接到客户反应项目过期时间设置较短,半小时不操作就会话过期需要反复登陆。解决处理开发环境:springboot项目内置Tomcat,所以项目中application.yaml配置session-out是生效的。生产环境:生产环境发布是

php session刷新后没有了怎么办php session刷新后没有了怎么办Jan 18, 2023 pm 01:39 PM

php session刷新后没有了的解决办法:1、通过“session_start();”开启session;2、把所有的公共配置写在一个php文件内;3、变量名不能和数组下标相同;4、在phpinfo里面查看session数据的存储路径,并查看该文件目录下的sessio是否保存成功即可。

session php默认失效时间是多少session php默认失效时间是多少Nov 01, 2022 am 09:14 AM

session php默认失效时间是1440秒,也就是24分钟,表示客户端超过24分钟没有刷新,当前session就会失效;如果用户关闭了浏览器,会话就会结束,Session就不存在了。

PHP如何在多个文件中正确地读取和写入Session数据PHP如何在多个文件中正确地读取和写入Session数据Mar 23, 2023 am 11:12 AM

当您在使用PHP会话(Session)时,有时会发现Session在一个文件中可以正常读取,但在另一个文件中却无法读取。这可能会让您感到困惑,因为会话数据应该可以在整个应用程序中共享。本文将解释如何在多个文件中正确地读取和写入PHP会话数据。

Springboot2 session设置超时时间无效怎么解决Springboot2 session设置超时时间无效怎么解决May 22, 2023 pm 01:49 PM

问题:今天项目中遇到了一个设置时间超时的问题,按SpringBoot2的application.properties更改一直不生效。解决方案:server.*属性用于控制SpringBoot使用的嵌入式容器。SpringBoot将使用ServletWebServerFactory实例之一创建servlet容器的实例。这些类使用server.*属性来配置受控的servlet容器(tomcat,jetty等)。当应用程序作为war文件部署到Tomcat实例时,server.*属性不适用。它们不适用,

Redis的共享session应用如何实现短信登录Redis的共享session应用如何实现短信登录Jun 03, 2023 pm 03:11 PM

1.基于session实现短信登录1.1短信登录流程图1.2实现发送短信验证码前端请求说明:说明请求方式POST请求路径/user/code请求参数phone(电话号码)返回值无后端接口实现:@Slf4j@ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1.校验手机号if

JavaScript和PHP的cookie之间有哪些区别?JavaScript和PHP的cookie之间有哪些区别?Sep 02, 2023 pm 12:29 PM

JavaScriptCookie使用JavaScriptcookie是记住和跟踪偏好、购买、佣金和其他信息的最有效方法。更好的访问者体验或网站统计所需的信息。PHPCookieCookie是存储在客户端计算机上的文本文件并保留它们用于跟踪目的。PHP透明地支持HTTPcookie。JavaScriptcookie如何工作?您的服务器将一些数据发送到访问者的浏览器cookie的形式。浏览器可以接受cookie。如果存在,它将作为纯文本记录存储在访问者的硬盘上。现在,当访问者到达站点上的另一个页面时

PHP如何处理微信小程序中的session问题PHP如何处理微信小程序中的session问题Jun 02, 2023 pm 03:40 PM

近年来,微信小程序风靡全球,已经成为了许多企业和个人开发者的首选平台。在小程序的开发中,我们经常会遇到session问题,也就是如何在小程序中保存用户登录状态。这个问题对于网站开发者来说并不陌生,但在小程序中却有些不同。本文将介绍如何使用PHP解决微信小程序中的session问题。一、小程序登录过程概述小程序的登录流程与网站的登录流程类似,分为以下几个步骤:

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경