Javascript 重定向到具有自定义标题的外部站点-AngularJS/OAuth
使用自定义头重定向到外部站点(OAuth服务器)以验证用户是否合理 例如,在向http://this\u is\u my\u site/login提供凭据后,单击login,并将您重定向到外部地址Javascript 重定向到具有自定义标题的外部站点-AngularJS/OAuth,javascript,angularjs,spring-security,oauth-2.0,Javascript,Angularjs,Spring Security,Oauth 2.0,使用自定义头重定向到外部站点(OAuth服务器)以验证用户是否合理 例如,在向http://this\u is\u my\u site/login提供凭据后,单击login,并将您重定向到外部地址http://OAuth_Server/oauth/autorize授权您的客户 问题是http://OAuth_Server/oauth/autorize需要与您刚才在http://this\u is\u my\u site/login中输入的凭据相同的凭据 如何使用自定义头重定向到OAuth服务器,
http://OAuth_Server/oauth/autorize
授权您的客户
问题是http://OAuth_Server/oauth/autorize
需要与您刚才在http://this\u is\u my\u site/login中输入的凭据相同的凭据
如何使用自定义头重定向到OAuth服务器,或者这是一种糟糕的方法
headers: {
Authorization: "Basic " + btoa('user' + ":" + 'password')
}
我使用AngularJS作为前端,Spring作为后端。您的问题有两个方面 首先是实现OAuth。基本上,您将客户端重定向到另一端,但重定向具有到站点的反向链接。当客户端在另一个站点上进行身份验证(登录)时,服务器会将客户端重定向回您的站点(使用您的站点在第一次重定向中提供的url),并提供站点令牌(在GET参数中)。使用此令牌,您可以向另一个站点发送请求,并检查用户操作系统是否正常 我简化了一些步骤,但总的来说,就是这样 在您的情况下,即使用户似乎具有相同的凭据,他仍然需要在提供商上进行身份验证(授权您的站点),这一点很重要。没有办法解决这个问题,因为它是故意设计的,这样客户端就不能在您的站点上输入另一个站点的凭据,并且仍然可以访问其他站点的数据 第二,在重定向时将自定义头发送到另一个站点。这是不可能的,主要是因为这是一个历史局限。最初,重定向是通过向具有新URL的客户端发送
Location
头来实现的,客户端通过GET请求新资源。就这么简单。后来AFAIK添加了JavaScript重定向,没有人真正关心头部,因为这无论如何都是不可能的,所以为什么要麻烦呢
然而,这个规则有一个重要的例外——身份验证。您可以在URL中添加用户和密码,如
http://user:password@主机/…
,它们将在Authenticate头中发送。但是,它与OAuth没有任何共同之处,称为HTT基本身份验证。如果服务器支持它,您可以在重定向期间指定它们,但它与OAuth正交。听起来您在做OAuth错误的事情。您应该只在授权主机上输入凭据嗯,我很难真正理解如何将OAuth2与现有应用程序集成。。。所以你说登录页面应该托管在http://OAuth_Server
而不是在http//这是我的网站
网站?看看这个~Wow!现在清楚了。登录(授权)应始终位于UAA服务器中,而不是客户端中。