首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从角2处理身份验证重定向

从角2处理身份验证重定向
EN

Stack Overflow用户
提问于 2017-02-03 06:32:47
回答 1查看 1.6K关注 0票数 2

我们有一个基于角度2的web应用程序,它从安全的REST中检索数据.

在第一个REST请求时,它将返回一个带有重定向(302)响应的URL,用于启动一个GET请求。角2不会自动重定向到这个URL,请求失败。请注意,REST的登录已经使用集中式身份验证系统完成了,此重定向不需要显示登录页面并从用户那里获取输入。它只需要调用GET请求。

我们如何对提供的重定向URL(来自HTTP:302响应)发起GET请求并自动检索数据?

如果我们从浏览器转到REST-API调用,它将自动重定向到给定的URL并返回数据。

启动REST-API调用的角源

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { Response, Headers, RequestOptionsArgs, URLSearchParams, RequestOptions } from '@angular/http';

this.http.get(url, options)
             .subscribe(
               (response: Response) => {
                 // handle response
               },
               (error: any) => {
                 //handle error
               }
             );

浏览器控制台错误

请求和答复

  • 更新

我想出了解决方案,因为限制发生在跨原点限制。我通过使用相同的主机名访问所有东西来解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 17:10:10

我目前也面临着同样的问题,尽管原因不同。我有多个微服务,并且正在使用一个路由器,所以角的前端只需要知道那个路由器。现在,当角前端需要一个特定的微服务时,我只调用路由器,然后返回一个重定向到正确的微服务。这样做的好处是,前端只需要了解一个微服务,而我可以自由地添加、删除、重命名等其他微服务。

这确实意味着我的路由器微服务返回307个响应几乎所有东西。我在角度方面实现它的方式是测试这个HTTP状态代码的响应。如果我得到307,我知道这是我的路由器重定向。然后我可以请求位置标头并将我的请求重新发送到该位置。

我想这对您来说是完全一样的,只需要测试您的响应以获得重定向HTTP状态代码。如果获得一个重定向代码,则从响应头获取位置,并将请求重新发送到该位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42018125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档