2013-11-01 8 views
0

내 응용 프로그램에서 phpCAS (v 1.3.2)를 사용하고 있습니다. 사용자가 다른 참여 SSO 응용 프로그램에서 로그 아웃했는지 확인하기 위해 CAS 서버에 대해 정기적 인 검사를 수행하려고했습니다. 그러나 phpCAS :: checkAuthentication() 또는 phpCAS :: forceAuthentication()을 수행 할 때마다 다른 일부 앱이 이미 로그 아웃되었거나 CAS 서버의 로그 아웃 URL/링크로 직접 로그 아웃 한 경우에도 항상 인증을 반환합니다. 로컬 세션이 여전히 존재하기 때문에 서버에 대한 검사를 수행하지 않습니다. 이 세션을 종료하는 것은 다른 앱의 책임입니까?phpCAS 싱글 로그 아웃 또는 인증 확인

다른 방법은 완벽하게 작동합니다. 즉, 내 응용 프로그램에서 로그 아웃을하고 (w/c가 phpCAS를 사용하는 경우) 다른 참여 sso 응용 프로그램과 심지어 서버의 포털에서도 로그 오프됩니다. CAS 라이브러리가 제공하는 모든 예제를 시도해 보았습니다. 아무도 일하지 않았다.

무엇이 누락 되었습니까?

답변

1

CAS 서버를 적극적으로 확인하는 대신 에서 사용자가 로그 아웃 한 CAS 서버에 대한 알림을 수신 대기해야합니다. 이렇게하려면 single sign out을 구현해야합니다. an example of how to do this in phpCAS이 있습니다. phpCAS::forceAuthentication()으로 전화하기 전에 간단하게 로그인 스크립트에 phpCAS::handleLogoutRequests(false);을 추가하십시오.