다음은 Drupal에서의 작업 방법입니다. 어떤 CMS를 사용하는 경우 특정 방법이 있지만 핵심 구조는 PHP 환경에서 지원하는 것과 동일합니다. 한 사이트에서 로그인 요청을 받으면 주어진 사용자 이름과 암호로 다른 사이트에 내부적으로 로그인하십시오.
- 먼저 사이트에 로그인하여 쿠키 토큰 등을 가져 와서 사용자 요구 사항과 관련된 다른 작업을 진행하십시오.
샘플 코드는 여기 Drupal CMS 용입니다. 작동 원리와 그 기능을 파악한 다음 관련 부분을 복사하여 사용자 환경에서 작업 할 수 있습니다.
// Build request data
$user_login_method = 'POST';
$user_login_retry = 0;
$post_data = array('username' => trim($username), 'password' => trim($password));
$user_login_data = http_build_query($post_data, null, '&');
// Send a request with the data to other site
$login_request = drupal_http_request($other_site_login_url, $user_login_headers, $user_login_method, $user_login_data, $user_login_retry);
// Look for set cookie header value in the response
if(isset($login_request->headers['Set-Cookie'])) {
// Set the cookie name and do the rest based on values
}
- 둘째는 사용자를 로그 아웃하는 다른 사이트의 로그 아웃 URL을 호출 할 수 있습니다. 로그인 호출에서 반환 된 쿠키 값을 사용해야하지만 로그 아웃 페이지에서 다른 사이트로 ajax 호출을하면 작업이 없습니다.
drupal_http_request 메서드에 대한 자세한 내용은 Drupal 사이트 API를 참조하십시오.
희망이 있으시면 PHP로 숙련도를 프로그래밍하여 환경에서 도움이 될 것입니다.
두 사이트의 사용자 데이터가 같다고하면 두 사이트 모두 데이터베이스를 공유하므로 데이터베이스에 플래그를 넣을 수 있습니까? – phpmeh
안녕하세요, phpmeh, 좋은 제안입니다. 그러나이 두 응용 프로그램은 동일한 데이터베이스를 공유하지 않습니다. 또한 우리는 데이터베이스 또는 두 번째 사이트의 코드베이스에 대한 액세스 권한이 없습니다. 다른 방법이 있습니까? 고맙습니다. –
동시에 두 웹 사이트에서 세션을 만드는 방법은 무엇입니까? API를 통해? – phpmeh