![](/img/trans.png)
[英]Output cache expire causes sudden increase in WebApi requests (MVC5/webapi2)
[英]How to pass a OAuth2 authentication token from MVC5 wepapplication to a WebAPI2 application
我在使用 OAuth2、WebAPI2 和接口設置項目時遇到了一些麻煩。
場景:
我正在建立一個基本上是 WebApi2 的項目。 這個 WebApi 為我的接口提供了業務邏輯和數據。
目前,該界面是一個 MVC5 Web 應用程序,但將來我希望能夠將其他一些“應用程序”連接到它。 這就是 CORS 的用武之地:接口和 WebAPI 可以位於不同的服務器上。
我想使用 OAuth2,因此用戶可以通過 Google 和其他提供商進行注冊。
問題:
它涉及注冊部分:
起初我嘗試注冊接口 MVC 應用程序並嘗試將身份驗證令牌傳遞給 WebAPI。 這似乎不是實現這一點的正確方法。
現在我想在 WebApi 項目中公開一個注冊界面,因此如果用戶在 MVC web 應用程序上注冊,他們將被重定向到 Api。 但這會讓人擔心,因為對於 MVC Web 應用程序上的每個操作,都需要一個“此用戶是否已通過身份驗證”調用。
有人知道這兩種選擇中的哪一種(或者可能是第三種)更可取嗎?
我知道這很廣泛,但請保持溫和;-)
這是架構部分的一個相當大的問題。
溫和一點。第二種方法似乎很復雜,因為您有兩個 UI 界面考慮了所有應用程序(MVC5 應用程序和現在用於注冊的 WebAPI)
因此,通過這樣做,您將使您的接口更加依賴於 API 項目,從而使其緊密耦合。
在第一種方法中,如果只有安全性是您的障礙,那么您可以在對 Web API 項目的服務調用之前和之后加密/解密令牌。
使用第一種方法,您可以在本地存儲或會話中的界面/表示層上持久化用戶身份驗證
WebApi 本身用於應用程序和系統的其他組件(如業務層)之間的分布式通信。
但是你已經有了界面層,所以我認為沒有必要讓 WebApi 使用用戶界面。
第一種方法會很好。
我們的項目具有相同的架構。
MVC 站點 -> Web API(業務) -> Web API(數據)
業務 API 將向第三方開發者開放,因此我們需要 OAuth2 身份驗證。
Web API 只能開放部分功能,不是全部,也許你會使用“范圍”,但對我們來說,只有兩種 API,第三方 API 和我們網站的 API。
所以我們在身份驗證處理程序中做了一些事情,授權標頭有一個“承載”方案,為什么我們的網站沒有一個新方案?
然后它起作用了。 只需為 MVC 站點定義一個新方案,例如。 “ASPX”,並存儲來自站點的表單cookie,解決它。
由於標頭方案不同,我們還可以知道請求來自哪里。
順便說一句,您應該注意計划的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.