我正在尝试重定向到新位置并传递授权持有者。但似乎不记名令牌没有发送。
我正在我的 php 代码中执行此操作
header('Authorization: Bearer ' . $retval);
header('Location:http://nextsite.com/home/index', true, 301);
exit();
我已在我的 .htaccess 文件中启用授权
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
我可以通过 cURL 调用来调用该站点,其中不记名令牌发送槽没有问题。
我正在运行 php 版本 8.3 服务器版本:Apache/2.4.52(Ubuntu) 服务器建成时间:2024-07-17T18:57:26
我尝试了很多事情,更改标头调用的顺序,授权/承载的大写,没有任何锁定。
您使用此代码所做的是将 response 标头发送到 浏览器。您没有向任何服务器发送任何内容。
第二行
header('Location:http://nextsite.com/home/index', true, 301);
告诉浏览器应该向给定的 URL 发送 GET 请求(顺便说一句:“Location:”和“http...”之间应该有一个空格)。授权标题行很可能会被忽略。至少,我从未听说过浏览器考虑到这一点。我还认为将响应标头中的身份验证令牌发送到浏览器是一个严重的安全风险。
还有一个提示:浏览器可能会遵循给定的重定向 URL,也可能不会。你不能依赖这个。