我有一个Angular前端,它使用了一个由AWS ALB保护的后端API,并具有OIDC身份验证.如果请求没有有效的Jwt令牌,ALB将重定向到Okta.
然而,在云上部署之后,前端到达ALB并得到302个响应,其中Location头指向我的Okta OIDCProvider ,但前端不会重定向用户.
如何让前端在收到来自后端的302响应时重定向用户,并在成功认证后让OIDC重定向回前端?
我有一个Angular前端,它使用了一个由AWS ALB保护的后端API,并具有OIDC身份验证.如果请求没有有效的Jwt令牌,ALB将重定向到Okta.
然而,在云上部署之后,前端到达ALB并得到302个响应,其中Location头指向我的Okta OIDCProvider ,但前端不会重定向用户.
如何让前端在收到来自后端的302响应时重定向用户,并在成功认证后让OIDC重定向回前端?
Angular提供了HttpClientInterceptor
,允许您拦截HTTP请求和响应.因此,创建一个拦截器来判断状态代码(302)和响应中是否存在Location
报头.如果这两个条件都满足,请从Location
报头中提取URL,然后使用Angular路由将用户导航到该URL,或者简单地执行以下操作:
window.location.href = event.headers.get('Location');