Kev*_*zet 8 redirect oauth-2.0 webrtc openid-connect fetch-api
我正在尝试获取fetch API请求的重定向响应位置片段.但如果可能的话,我无法想象如何访问它.
上下文是我在隐式流中执行OpenID Connect请求,用于WebRTC Identity Proxy断言生成.OIDC规范将请求的答案定义为:
使用Implicit Flow时,所有响应参数都将添加到重定向URI的片段组件中
HTTP/1.1 302找到位置:https ://client.example.org/cb# access_token = SlAV32hkKG ...
所以我在手动模式下设置了获取请求.但响应是一个不透明的重定向过滤响应,它隐藏了位置标题.(https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect)
其他获取模式是错误,其后无效.虽然XHR会自动跟随重定向,但也无济于事.我可能会从fetch API中遗漏一些东西,但它似乎是故意隐藏的东西.
有人能给我一种方法来访问这些信息(或确认这是不可能的)?
是否有替代fetch和XHR来发出此请求,这将允许访问重定向位置标头?
由于 XHR 自动/不透明地遵循重定向(例如,如果您使用 polyfill whatwg-fetch),一种可能的解决方案是检查response.url分辨率fetch,看看它是否与您期望的重定向位置匹配。
仅当可能的重定向位置有限或匹配某些模式时,这才会有帮助——例如,如果您可能希望随时重定向到/login:
function fetchMiddleware(response) {
const a = document.createElement('a');
a.href = response.url;
if (a.pathname === '/login') {
// ...
} else {
return response;
}
}
fetch(`/api`)
.then(fetchMiddleware)
.then(function (response) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |