내 서버의 단일 도메인에서 호스팅되는 Facebook 앱이 거의 없습니다. 동일한 사용자가 단일 세션에서 둘 이상의 내 앱에 액세스 할 수 있습니다. 한 앱의 일부 데이터가 다른 앱에 저장되지 않도록하려면 어떻게해야합니까? 사용자는 앱에서 단순히 탐색 할 수 있으므로 로그 아웃은 옵션이 아닙니다.한 서버에서 한 명의 사용자가 여러 PHP 세션을 처리하는 방법은 무엇입니까?
3
A
답변
8
각 앱마다 다른 session_name()
을 사용하면 세션이 서로 효과적으로 작동하지 않게됩니다. 나는 사람이 세션 데이터를 사용하는 응용 프로그램을 포함 할 것이라고 생각할 수 있으며, 사용자의 세션 데이터에 잘못된 세션을 참조하면, 세션을 파괴
// Application 1
session_name("APP1");
session_start();
// Application 2
session_name("APP2");
session_start();
0
솔루션.
0
그냥 생각해 보겠습니다. 앱마다 하위 도메인을 설정하고 싶을 수도 있습니다. 쿠키와 세션은 기능에 의존하기보다는 자동으로 완전히 분리됩니다 (session_name()
매뉴얼 설명에 표시된 한 사람처럼 느릴 수 있음).
또한 개별 하위 도메인은 사용자를 악용하지 못하도록합니다. 동일한 원산지 정책 때문입니다. (맞습니까?)
+0
그렇지 않습니다. 쿠키가 설정되는 방법에 따라 다릅니다. 일반적으로 상위 도메인에 설정되므로 site1.example.com의 쿠키에는 site2.example.com의 쿠키가 계속 표시됩니다. –
0
모든 응용 프로그램마다 다른 키를 사용하여 세션 섹션과 같은 것을 만들 수 있습니다. 키를 고유하게 만들면됩니다. 세션에 데이터를 저장할 때마다 적절한 섹션에 저장하십시오 (예 :
//save the ids into db or configuration file after it's generated
$app1id = uniqid('fbApp');
$app2id = uniqid('fbApp');
//Save data for application 1
$_SESSION[$app1id] = array('app' => 'data');
//Save data for application 2
$_SESSION[$app2id] = array('app' => 'data');
관련 문제
- 1. 한 명의 사용자에 대해 여러 세션이 있습니까?
- 2. 한 페이지에서 여러 양식을 처리하는 방법은 무엇입니까?
- 3. 브라우저가 한 서버에서 여러 세션을 유지 관리 할 수 있습니까?
- 4. 한 페이지에 여러 양식을 처리하는 방법은 무엇입니까?
- 5. 한 번에 한 명의 사용자
- 6. 여러 호스트에서 PHP 사이트의 세션을 처리하는 가장 좋은 방법은 무엇입니까?
- 7. 한 번에 여러 명의 사용자가 같은 세션 ID를 할당했습니다.
- 8. 한 Tomcat 서버에서 다른 Tomcat 서버로 세션을 전송하는 방법은 무엇입니까?
- 9. 하나의 서버에서 여러 도메인을 처리하는 방법은 무엇입니까?
- 10. 세션이 중복되어 2 명의 사용자가 시스템에 로그인 한 것으로 보입니다.
- 11. 한 명의 생산자, 두 명의 소비자 변형
- 12. 한 페이지에서 여러 비동기 오류를 처리하는 방법은 무엇입니까?
- 13. SVN 1 명의 사용자가 독점적으로 변경 한 파일 목록
- 14. 한 필드에 여러 입력 인스턴스를 처리하는 방법
- 15. 사용자가 업로드 한 콘텐츠를 저장하는 방법은 무엇입니까?
- 16. 개발자 버전의 SQL Server로 여러 명의 사용자가 사용할 수 있습니까?
- 17. PHP로 서버에서 세션을 만드는 방법은 무엇입니까?
- 18. PHP 세션을 삭제하는 방법은 무엇입니까?
- 19. VB6에서 winsock으로 만든 소켓 서버에서 여러 클라이언트를 처리하는 방법은 무엇입니까?
- 20. Facebook : 한 명의 Facebook 사용자가 다른 Facebook 사용자에게 보안 링크를 보낼 수있는 가장 좋은 방법은 무엇입니까?
- 21. 한 명의 사용자에게만 애플리케이션을 제한하는 방법
- 22. 짧은 코딩 세션을 처리하는 방법은 무엇입니까?
- 23. 한 UIViewController 여러 UITableViews 처리하는 가장 좋은 방법은?
- 24. 사용자가 CakePHP로 로그인 한 후 어떻게 사용자 세션을 변경합니까?
- 25. 한 번에 여러 항목을 쿼리하는 방법은 무엇입니까?
- 26. 여러 사용자가 동일한 작업을 수행 PHP
- 27. pylons 앱에서 여러 세션을 사용하는 방법은 무엇입니까?
- 28. 세션을 기반으로 한 액세스 차단
- 29. PHP MySQL - 한 번에 여러 행을 업데이트하십시오.
- 30. 서버에서 이미지를 처리하는 가장 좋은 방법은 무엇입니까?
). 나는 당신이 다른 세션 이름을 설정할 수 있다는 것을 몰랐다. 나는 그들이 각각의 특정 응용 프로그램에 묶여 있다고 추측하고 있습니까? – chustar
각 응용 프로그램에 자체 세션 이름이 있으면 yes입니다. session_name은 기본적으로 세션 ID가 저장된 쿠키의 이름이됩니다. 따라서 각 앱마다 고유 한 세션 이름이 있으면 사용자는 앱당 하나의 쿠키로 끝나며 각 세션은 독립적입니다. 서로의 대안은 세션'$ _SESSION [ 'app1'] [...]','$ _SESSION [ 'app2'] [...]'등에서 하위 키를 사용하는 것입니다. –