2009-07-22 8 views
26

가능한 중복 :
HTTP authentication logout via PHP.htaccess (및 .htpasswd) 인증을 사용할 때 로그 아웃하는 방법?

안녕

나는 .htaccess.htpasswd을 사용하여 보호 내 웹 사이트에 몇 가지 기능을 가지고있다. 사용자가 액세스하려고하면 세부 정보를 입력하라는 메시지가 나타납니다. 그들은 그들의 세부 사항을 입력하고 들어가서 물건 등을 볼 수 있습니다.

제 질문은이 유형의 인증을 위해 logout 기능을 어떻게 만듭니 까?입니다. 브라우저 창을 닫아서 "로그 아웃"할 수 있다는 것을 알고 있습니다. 그러나 이것은 이상적이지 않습니다. 나에게 무엇을 제안 해 주겠습니까?

감사합니다.

+0

이전에 예를 들었습니다. http://stackoverflow.com/questions/449788/http-authentication-logout-via-php를 참조하십시오. – VolkerK

+0

세션을 제거하거나 헤더를 다시 설정하는 행을 거의 작성하지 않고 구현할 수있는 유형은 없습니다. 똑 바른 앞으로 접근하십시오. http://blog.acpmasquerade.com/2011/09/basic-http-authentication-straight.html#more – acpmasquerade

답변

31

브라우저는 일반적으로,이를 지원하는 브라우저가 처음 웹 사이트 관리자는 사용자가 로그 아웃 할 수 있도록하는 방법을 알고 에 싶었, 기본 인증을 구현 을 시작한 이후 How do I log out?

표시되지 않습니다. 브라우저가 초 자습서에 설명 된대로 인증 영역과 사용자 이름 과 암호를 캐시에 저장하기 때문에 ,이 서버 구성의 기능이 아니라 에 브라우저를 얻기의 문제는 자격 증명 정보를 잊지입니다 따라서 리소스가 다음 번에 이 요청 될 때 사용자 이름과 암호 을 다시 제공해야합니다. 같은 공공 장소에서 브라우저를 사용하고, 다음 사람이 귀하의 은행 계좌로 를 얻을 수 있도록 브라우저에 기록 떠나하고자하지 때와 같이이 것이 바람직한 여러 상황이 있습니다. 이 의 지금까지 아무도 아마 자주 묻는 질문에 대한 기본 인증,하지만

그러나, 주요 브라우저 업체는 이 제품에 넣어 바람직한 기능 것으로이를 볼 수 있습니다.

결과적으로이 질문에 대한 대답은 불가능합니다. 죄송합니다.

사이트의 HTTP 인증을 지울 수있는 브라우저 확장 프로그램이 있습니다. Firefox의 경우 WebDeveloper 확장 기능 (이 기능은 내 favourtie 확장 기능 중 하나입니다.)은이 기능을 제공합니다. 메뉴는 Miscellaneous/Clear Private Data/HTTP Authentication입니다.

+0

아, 알겠습니다 .. 고마워요. – TigerTiger

+5

Firefox의 HTTP 인증 로그 아웃의 기본 방법은 "도구"> "최근 기록 삭제 ..."에서 "활성 로그인"확인란으로 사용할 수 있습니다. 이는 직관적이지 않고 도메인 하나에서만 로그 아웃 할 수 있도록 허용하지 않으며 항상 모든 페이지에서 로그 아웃합니다. – aef

19

파이어 폭스와 크롬으로 테스트. 사용자를 http://logout:[email protected]으로 보내면됩니다. 이렇게하면 현재 사용자 이름/암호가 logout/logout (잘못된 사용자/암호 조합 일 수 있음)으로 바뀌고 이제는 잘못된 사용자 이름/암호가 있으므로 사이트에 다시 액세스하려면 로그인해야합니다.

여러 사용자 이름/암호를 동시에 사용할 수 있기 때문에 오페라에서 작동하지 않습니다. IE에서는 http://username:[email protected] 개의 URL을 지원하지 않기 때문에 IE에서도 작동하지 않았습니다.

+9

RFC 3986 (URI : 일반 구문) 섹션 3.2.1에 따릅니다. (사용자 정보)'user : password @ host'의 사용은 더 이상 사용되지 않습니다. 'http : // logout @ yourserver.example.com /'만 사용하는 것은 대부분의 경우 작동하지 않습니다. – aef

+1

크롬 또한 – apis17

+0

가 할 수있다 오늘 크롬에 나를 위해 일했다, 큰 재료, 고마워요! –

2

로그 아웃이 가능합니다. 사용자가 나쁜 로그인 정보를 입력하고 다른 곳으로 리디렉션 할 때까지 HTTP 401을 반환하는 로그 아웃 페이지를 구현해야합니다. 브라우저는 수락 된 최신 로그인 정보를 기억하므로 정확한 로그인을 무시합니다.

그러나 이것은 사용자의 협조가 필요하기 때문에 다소 유용하지 않습니다.

2

나는 몇 년 전에이 문제에 부딪쳤다. 모든 사람들이 겪고있는 문제가 있음을 발견하고 아무도 일반적인 방식으로 해결하기를 원하지 않는 것처럼 보이는 것은 매우 실망 스럽습니다.

Inadequate Logout functionality in HTTP Authentication에 언급 된대로 응답은 RFC를 변경하여 시간 초과를 허용하고 로그 아웃 버튼을 지원한다고 생각합니다. 웹 페이지가 필요한 응답 코드를 반환하는 URL에 웹 페이지의 링크를 간단하게 포함시킬 수 있기 때문에 서버가 "로그 아웃"헤더를 보낼 수 있다는 추가 저자의 제안에 따라 클라이언트 사용자 에이전트 지원이 필요하지 않습니다. 및/또는 헤더를 사용하여 현재 세션을 무효화합니다.

관련 문제