好的,看来我在最初的问题上犯了一个错误。所以,这里有一些更正。答案仍然适用,因为当协议更改为 HTTPS (SSL) 时会停止第二次重定向。
就我而言,我多次发生重定向,并且浏览器不遵循第二次重定向。遵循第一个重定向但返回错误。
我一直在阅读包含重定向的 JavaScript AJAX 响应会被自动跟踪,但在我的情况下似乎不是。浏览器自动跟随第一个重定向,返回第一个重定向而不跟随标头中的第二个重定向。我的问题是我希望浏览器自动跟踪所有重定向。
重定向是 phpCAS 库的一部分。我有一个用 PHP 编写的 API,它每次都会在返回结果之前检查用户身份验证。
这是顺序。需要注意的主要是浏览器在执行 1 次重定向之后返回第二个响应。当我对localhost/example/api
.
本地主机/示例
localhost/example/api
使用 jQuery.ajax()调用
响应 1:localhost/example/api
- 重定向到
https://localhost/accounts/cas/login?service=api.example.com&gateway=true
(使用 SSL)。
响应 2: (SSL) localhost/accounts/cas/login?service=api.example.com&gateway=true
- 当查询键 'gateway' 存在时,登录会简单地重定向回由 'service' 键提供的 URL,无论是否有票证(向服务发出信号,告知用户是否已登录)。
响应 3:localhost/api?ticket=TICKET
- 验证票证并在没有票证的情况下重定向回自身。
响应 4:本地主机/api
- 这次 CAS 客户端查看 $_SESSION 以记住票据是什么,然后处理返回 JSONP 的 API 请求。
我在 OpenID 或 OpenAuth(orization) 上使用 CAS 并没有什么特别的原因。CAS 只是我能够在 WordPress 中使用的第一个身份验证模块。我对使用不同的身份验证库、CMS、框架等方面的建议持开放态度。虽然,我希望只是完成这个项目。因此,重新加工的次数越少越好。