首页 文章

承载和Cookie身份验证

提问于
浏览
1

我有两个webproject:MyApp和Api.MyApp . MyApp是MVC5应用程序,Api.MyApp是MVC WebAPI应用程序 .

MyApp是一个富客户端应用程序,可以在大多数操作中调用API项目 . 对于授权,我正在为web api使用Bearer令牌,但我也希望有一个cookie,这样我就可以在主MyApp MVC项目中保护某些路由 .

要获得持有者令牌,我称之为“http://api.myapp/token”我可以将此持有者令牌丢入cookie并让MVC项目识别它,或者我必须发送2个单独的呼叫,1到api获取持有者令牌,1到mvc应用程序来获取cookie . 这似乎有点多余,有更好的方法吗?

1 回答

  • 1

    是 .

    假设您的应用程序正在响应以下内容:

    • api.example.com

    • www.example.com

    用户访问www.example.com上的站点并提供其凭据 . 然后,您的应用程序向api.example.com发出AJAX调用以获取令牌 . 你现在有几个选择:

    • api.example.com返回令牌以及cookie,域名设置为 .example.com

    • api.example.com返回令牌,客户端脚本将其设置为cookie,域名设置为 .example.com

    如果这样做,那么API和客户端应用程序都应该可以访问基于cookie的令牌 .

    如果您不使用.Net auth令牌,则可能必须根据持票人cookie推出自己的授权机制 .

    但是,如果您使用的是Intranet类型的域(即 http://myapp/http://api.myapp ),那么您只需在域中设置一个只有一个句点的cookie,否则我可以将其设置为".com"并在任何地方挥霍数据 . )

相关问题