좋아, 내 초기 질문에 실수 한 것 같습니다. 그래서, 여기에 몇 가지 수정 사항이 있습니다. 두 번째 리디렉션은 프로토콜이 HTTPS (SSL)로 변경되면 중지됩니다.브라우저가 AJAX 응답의 리디렉션을 따르지 않습니다. (PHP 생성 응답에서 CAS 인증을 사용하고 있습니다.)
필자의 경우 리디렉션이 여러 번 발생하고 브라우저가 두 번째 리디렉션을 따르지 않습니다. 첫 번째 리디렉션을 수행하지만 오류가 반환됩니다.
리디렉션이 포함 된 JavaScript AJAX 응답은 자동으로 추적되지만 내 경우에는 보이지 않습니다. 첫 번째 리디렉션에는 자동으로 브라우저가 이어지고 헤더의 두 번째 리디렉션을 따르지 않고 첫 번째 리디렉션이 반환됩니다. 내 문제는 모든 리디렉션이 브라우저에 자동으로 이어지기를 바랍니다.
리디렉션은 phpCAS 라이브러리의 일부입니다. 결과를 반환하기 전에 매번 사용자 인증을 확인하는 PHP로 작성된 API가 있습니다.
여기에 순서가 있습니다. 주목해야 할 중요한 점은 브라우저가 리디렉션을 1 회 수행 한 후 두 번째 응답을 반환한다는 것입니다. 나는 AJAX 호출을 localhost/example/api
으로 만들 때 모든 것을 끝내고 마지막 응답을 반환하는 것을 선호합니다.
로컬 호스트/예 jQuery.ajax를 사용
- 통화
localhost/example/api
()
응답 1 로컬 호스트/예/API
- 사용하여 (
https://localhost/accounts/cas/login?service=api.example.com&gateway=true
리디렉션 SSL).
응답 2 : (SSL) 로컬 호스트/계정/CAS/로그인 서비스 = api.example.com & 게이트웨이 = 사실
- 쿼리 키 '게이트웨이'존재의 로그인은 티켓이 있거나없는 (서비스가 사용자가 로그인했는지 여부를 신호로 보내기 위해) 'service'키가 제공 한 URL로 다시 리디렉션됩니다.
응답 3 : 로컬 호스트/API는 티켓 = 티켓
- 티켓을 확인하고 티켓없이 다시 자체에 리디렉션합니다.
응답 4 : 로컬 호스트/API
- CAS에 클라이언트가 $ _SESSION에 보이는이 시간은 티켓이 무엇인지 기억하고 JSONP를 반환하는 API 요청을 처리합니다.
내가 OpenID 또는 OpenAuth (orization)를 통해 CAS를 사용하고있는 특별한 이유는 없습니다.CAS는 내가 워드 프레스에서 일할 수 있었던 첫 번째 인증 모듈 일뿐입니다. 나는 다른 인증 라이브러리, CMS, 프레임 워크 등을 사용하는 관점에서 제안을하고 있지만,이 프로젝트가 끝나기를 바랍니다. 그래서 덜 재가공하면 좋습니다.
알다시피, 나는 잠시 동안 StackOverflow에서 검색 한 후에이 질문을 게시했습니다. 그런 다음 질문을 게시 한 후에 다른 검색을 수행하고 StackOverflow에서 비슷한 질문을 찾습니다. http://stackoverflow.com/questions/2961051/cas-authentication-and-redirects-with-jquery-ajax –
두 번째 응답이 다른 프로토콜 (SSL)을 사용하고 있고 하위 도메인이 다르기 때문에 다음과 같이 보입니다. 오류를 설명합니다. 나는 브라우저가 리다이렉트를 따르고 있음을 의미하며, 무엇인가가 변경 될 때 (프로토 콜 또는 서브 모듈 또는 양쪽 모두), 데이터가 응답으로 리턴되지 않을 때가 아니다. 그렇지 않으면 JSONP 응답이 그 시점에 추가 될 수있다. .. 그걸 밖으로 시도해야합니다 ... 한숨.) –