2013-02-20 78 views
4

我們正在開發一個API和一個單頁應用程序(這是未來更可能的消費者之一)。使用OAuth和單頁應用程序實現Web API

我們已經開始使用web API,並基本上實現了一個系統,它非常類似於John Papa在他的複合視圖課程中創建的系統,名稱爲「使用HTML5構建單頁應用程序(SPA)」,ASP.NET Web API,Knockout和jQuery「。

我們現在需要在這個應用程序中實現驗證和用戶管理,並且需要找到簡單的方法來在儘可能短的時間內實現這一點,因爲我們很着急。

我們意識到ASP.NET更新中包含的SPA模板與我們的需求非常相似,但我們想知道在現有代碼中實現類似功能的最佳方法。

我們是新手開發人員,正如您所想的那樣。

是否有可能使用軟件包管理器來安裝某些軟件包,瞧,簡單的成員資格和OAuth身份驗證選項是否可用?

我們的用例是我們需要基於角色保護API上的一些資源,並且應該能夠使用用戶名和密碼登錄,還可以使用Facebook,Google或Twitter帳戶登錄。

回答

3

我們最終與SPA模板一起,在API上進行身份驗證(單獨的MVC部分)。 然後API將生成一個唯一的令牌並將用戶重定向到帶有url參數中的令牌的前端。

然後前端需要在每個後續請求中發送該令牌。

+0

我們正在做同樣的事情。儘管問題很快。您是否是SPA的登錄部分,或者是否有自己獨立的ASP.Net MVC視圖? – uriDium 2013-09-24 06:30:36

+0

我們這樣解決了這個問題:使用url參數中的令牌將MVC重定向到帶有token的Angular login-returnUrl,並堅持這一點,並使用Angulars響應攔截器將其附加到API的所有後續請求中。 – 2013-11-21 09:55:25

0

看一看here - Identity Server由安全專家完成。這就是你需要的一切。

在OAuth方面,您需要使用客戶端Web應用程序流,訪問令牌將立即發佈給客戶端並可以使用。

3

在這裏發現了一個有趣的話題:https://vimeo.com/43603474命名爲Dominick Baier - 保護ASP.NET Web API。

簡介:微軟的編寫RESTful Web服務和Web API的新框架是非常合適的所謂的ASP.NET Web API。正如名稱所適用的,該技術是ASP.NET的一部分,並且還繼承了其着名的安全體系結構。但除此之外,它還支持一些新的可擴展點和IIS之外的靈活託管基礎架構。如何在Web API中進行身份驗證和授權有很多方法 - 從Windows到用戶名和密碼,直到基於令牌的身份驗證以及其間的所有內容。本次演講探討了各種選項,並特別關注了諸如索賠,SAML,OAuth2,簡單網絡令牌和授權等技術。

相關問題