承载和Cookie认证
本文关键字:认证 Cookie | 更新日期: 2023-09-27 18:19:13
我有两个web项目:MyApp和Api.MyApp。MyApp是一个MVC5应用程序和Api。MyApp是一个MVC WebAPI应用程序。
MyApp是一个富客户端应用程序,它的大部分操作调用API项目。对于授权,我使用承载令牌的web api,但我也想有一个cookie所以我可以在主MyApp MVC项目中保护某些路由。要获得承载令牌,我调用"http://api"。myapp/token"我可以把这个承载令牌扔到cookie中,并让MVC项目识别它,或者我必须发送2个单独的调用,1到api获取承载令牌,1到MVC应用程序获取cookie。这看起来有点多余,有更好的方法吗?
可以。
假设您的应用程序响应如下内容:
- api.example.com
- www.example.com
用户通过www.example.com访问您的站点并提供凭据。然后,您的应用程序对api.example.com进行AJAX调用以获取令牌。现在您有几个选项:
- apii.example.com返回令牌和cookie,域名设置为
.example.com
- apii.example.com返回令牌,客户端脚本将其设置为cookie,域名设置为
.example.com
如果您这样做,那么API和客户端应用程序都应该能够访问基于cookie的令牌。
如果你不使用。net认证令牌,你可能需要基于承载cookie滚动你自己的授权机制。
然而,如果你是内部网类型的域(即http://myapp/
和http://api.myapp
),那么你将不得不与选项2和使用cookie的默认域(你不能设置cookie只有一个句号的域,否则我可以设置一个为"。com"和挥霍数据无处不在)