【发布时间】:2014-04-04 15:10:26
【问题描述】:
我已经在 AngularJS 中实现了基于令牌的身份验证,但是我的安全 api(生成令牌)是基于窗口的,用于将所有 AD 交互集中到一个站点。
结构如下:
流程如下:
- 用户未登录
- $http 向 Windows 认证的安全 API 发出请求
- Security Api 用户 AD 创建令牌(由 windows auth 处理的身份验证)
- 令牌返回到应用程序
- 所有后续请求都使用令牌对经过身份验证的 API 进行令牌
当安全和应用位于同一个域时,这一切都可以正常工作,但是只要 $http 请求需要通过域,就不会发送带有 Windows 凭据的授权标头,从而导致 401。
示例请求(api 是 windows 认证的)
Security Api 通过允许 Origin 允许跨域请求(* 仅用于测试而非生产):
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
问题(TL:DR):
是否有可能,如果有,在发出跨域 $http 请求时如何让 AngularJS 客户端应用程序通过 Windows 凭据?
【问题讨论】:
标签: angularjs security http asp.net-web-api token