首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重定向到具有自定义标头的外部站点- AngularJS/OAuth

重定向到具有自定义标头的外部站点- AngularJS/OAuth
EN

Stack Overflow用户
提问于 2015-07-29 23:08:52
回答 1查看 2.3K关注 0票数 1

对具有自定义头的外部站点(OAuth服务器)进行重定向以便对用户进行身份验证是否合理?

例如,在向http//this_is_my_site/login提供凭据之后,单击登录,并将您重定向到外部地址http://OAuth_Server/oauth/autorize以授权您的客户端。

问题是,http://OAuth_Server/oauth/autorize需要与您刚才在http//this_is_my_site/login中输入的凭据相同。

如何使用自定义头重定向到OAuth服务器,或者这是一种糟糕的方法?

代码语言:javascript
运行
复制
headers: {
  Authorization: "Basic " + btoa('user' + ":" + 'password')
}

我将AngularJS用于前端,Spring用于后台。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-30 00:27:23

你的问题有两个方面。

首先是实现OAuth。基本上,您重定向客户端到另一边,但重定向有反向链接到您的网站。当客户端在另一个站点上进行身份验证(登录)时,服务器将客户端重定向回您的站点(使用在第一次重定向中提供的url站点)并提供站点令牌(在GET参数中)。使用此标记,您可以向另一个站点发送请求,并检查用户os是否确定。

我已经缩短了一些步骤,但总的来说,就是这样。

在您的情况下,即使用户似乎具有相同的凭据,他仍然需要在提供者上进行身份验证(授权您的站点)是很重要的。没有办法解决这个问题,因为它是故意设计的,客户端不应该能够在您的站点上输入另一个站点的凭据,并且仍然可以访问其他站点的数据。

第二,在重定向时将自定义标头发送到另一个站点。这是不可能的,主要是因为这是一个历史的局限。最初,重定向是通过向具有新URL的客户端发送Location头来实现的,客户端通过GET请求新的资源。就这么简单。后来,AFAIK添加了JavaScript重定向,没有人真正关心头部,因为它是不可能的,所以为什么要麻烦呢?

然而,对于此规则有一个重要的例外-身份验证。您可以将用户和密码作为http://user:password@host/...添加到URL中,它们将被发送到身份验证头中。但是,它与OAuth没有任何共同之处,称为。如果服务器支持它,您可以在重定向期间指定它们,但它与OAuth是正交的。

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

https://stackoverflow.com/questions/31712670

复制
相关文章

相似问题

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