.htaccess (및 .htpasswd) 인증을 사용할 때 로그 아웃하는 방법은 무엇입니까? [복제하다

StackOverflow https://stackoverflow.com/questions/1163868

문제

가능한 복제 :
PHP를 통한 HTTP 인증 로그 아웃

안녕

내 웹 사이트에 보호 된 기능이 있습니다. .htaccess 그리고 .htpasswd. 사용자가 액세스하려고하면 세부 정보를 입력하라는 프롬프트가됩니다. 그들은 그들의 세부 사항을 입력하고 들어가서 물건을 볼 수 있습니다. 모두 잘 작동합니다.

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

감사.

도움이 되었습니까?

해결책

브라우저는 일반적으로 이것을 지원하지 않습니다 로그 아웃하려면 어떻게해야합니까?

브라우저가 처음 기본 인증을 구현하기 시작한 이후 웹 사이트 관리자는 사용자가 로그인하는 방법을 알고 싶어했습니다. 브라우저는이 튜토리얼의 앞부분에서 설명한대로 사용자 이름과 비밀번호를 인증 영역으로 캐시하기 때문에 서버 구성의 기능은 아니지만 브라우저가 자격 증명 정보를 잊어 버릴 수있는 문제입니다. 리소스가 요청되며 사용자 이름과 비밀번호를 다시 제공해야합니다. 공공 장소에서 브라우저를 사용할 때와 같이, 브라우저를 로그인하지 않기를 원하지 않으므로 다음 사람이 은행 계좌로 들어갈 수 있도록 브라우저를 로그인하지 않기를 원하지 않는 등이 바람직한 상황이 많이 있습니다.

그러나 이것은 아마도 기본 인증에 대한 가장 자주 묻는 질문 일지 모르지만, 주요 브라우저 제조업체 중 어느 것도 이것을 제품에 넣기에 바람직한 기능으로 보지 못했습니다.

결과적 으로이 질문에 대한 답은 할 수 없다는 것입니다. 죄송합니다.

사이트의 HTTP 인증을 지울 수있는 브라우저 확장 기능이 있습니다. Firefox의 경우 웹 개발자 Extension (어쨌든 내 Favourtie 확장자 중 하나) 이이 기능을 제공합니다. 이것의 메뉴는입니다 Miscellaneous/Clear Private Data/HTTP Authentication.

다른 팁

Firefox 및 Chrome에서 테스트되었습니다. 당신이 할 수있는 일은 사용자에게 보내는 것입니다 http : // logout : logout@example.com. 이렇게하면 현재 사용자 이름/암호를 로그 아웃/로그 아웃 (유효하지 않은 사용자/패스 조합 일 수 있음)으로 대체되며 이제 잘못된 사용자 이름/비밀번호가 있으므로 사이트에 액세스하려면 다시 로그인해야합니다.

오페라에서는 여러 사용자 이름/암호를 동시에 가질 수 있기 때문에 작동하지 않습니다. IE는 지원하지 않기 때문에 IE에서도 작동하지 않았습니다. http : // username : password@example.com URL.

나는 몇 년 전에이 문제를 해결했습니다. 모든 사람들이 가진 문제가 있다는 것을 발견하는 것은 엄청나게 실망스럽고 아무도 일반적인 방식으로 해결하고 싶지 않은 것 같습니다.

언급 한 바와 같이 HTTP 인증에서 로그 아웃 기능이 부적절합니다 대답은 RFC를 변경하여 타임 아웃을 허용하고 로그 아웃 버튼을 지원하는 것입니다. 서버가 "로그 아웃"헤더를 보낼 수 있다는 저자의 추가 제안은 실제로 어느 클라이언트 사용자 에이전트 지원 웹 사이트는 단순히 웹 페이지에 필요한 응답 코드를 반환하는 URL에 대한 링크를 포함하고/또는 헤더를 현재 세션을 무효화 할 수 있습니다.

로그 아웃하는 것이 가능합니다. 사용자가 잘못된 로그인 정보를 입력 할 때까지 HTTP 401을 반환 한 다음 다른 곳에서 리디렉션되는 로그 아웃 페이지를 구현해야합니다. 브라우저는 허용되는 최신 로그인 정보를 기억하므로 올바른 로그인을 무시합니다.

그러나 이것은 좀 사용할 수 없으며, 사용자의 협력이 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top