我有一个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');

Angular相关问答推荐

日语字符不受角形约束控制

有没有一种方法用timeout()操作符创建计数器,用于超时一个观察对象?

带信号数据源的17角material 表

NGNEW不会在src根文件夹ANGLI CLI 17.0.10中生成app.mode.ts

如何使用解析器处理Angular 路由中存储的查询参数以避免任何额外的导航?

Angular 16-错误NG8002:无法绑定到NGModel,因为它不是输入的已知属性

使用Dragula时,ReactiveForm元素在拖动副本中显示不同的