簡體   English   中英

承載和Cookie身份驗證

[英]Bearer and Cookie Authentication

我有兩個Web項目: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。 這似乎有點多余,是否有更好的方法?

是。

假設您的應用程序對以下內容做出響應:

  • api.example.com
  • www.example.com

用戶訪問了您在www.example.com上的網站並提供了憑據。 然后,您的應用將對api.example.com進行AJAX調用以獲取令牌。 您現在有幾個選擇:

  1. api.example.com返回令牌以及cookie,其域設置為.example.com
  2. api.example.com返回令牌,客戶端腳本將其設置為域設置為.example.com的cookie。

如果執行此操作,則API和客戶端應用程序都應有權訪問基於cookie的令牌。

如果不使用.Net身份驗證令牌,則可能必須基於承載cookie滾動自己的授權機制。

但是,如果您使用的是Intranet類型的域(即http://myapp/http://api.myapp ),則必須使用選項2,並將默認域用於Cookie(您無法設置Cookie,該域名在域中只有一個句點,否則我可以將其設置為“ .com”並在各處散布數據。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM