簡體   English   中英

如何將 OAuth2 身份驗證令牌從 MVC5 wepapplication 傳遞到 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.

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