2014-09-12 171 views
2

我正在構建移動應用程序(也可能以後會成爲Web應用程序)。服務器端是一個ASP.NET MVC + Web API應用程序,我正在考慮如何實現服務的用戶管理和身份驗證。移動應用程序Web API身份驗證

我應該如何在應用程序中實現註冊/登錄屏幕?提供原生應用程式表格,只會向服務傳送API要求,或​​者最好是顯示網頁瀏覽器組件並顯示網站的登入網頁,然後在使用者登入後提取令牌?我看到第一個選項更加用戶友好,但第二個選項允許我更改登錄/註冊頁面(例如添加外部身份驗證提供程序),而不會破壞應用程序的舊版本。

我的第二個問題是關於外部身份驗證提供程序。 ASP.NET Identity對他們有很好的支持,用戶可以通過Facebook或其他OAuth2提供者進行註冊。當我計劃公開公開應用程序的API時,爲外部身份驗證提供程序添加支持是否有意義?有沒有任何理由爲什麼這不是一個好主意?

回答

2

如果您認爲您的用戶會信任您管理其密碼,那麼您的第一個選擇是最好的選擇。您對您的服務進行安全呼叫,讓服務產生不記名令牌。這將是一個匿名電話。我用了回答這個問題,讓我走這路:

Get IPrincipal from OAuth Bearer Token in OWIN

如果您的用戶不太可能與他們的證書信任你,那麼Web視圖和外部供應商是一個很好的選擇。您需要與支持「隱式授權流程」的提供商合作,因爲他們不想在移動設備上共享應用程序密鑰和客戶端密鑰。這種方法涉及使用Web視圖登錄,然後在響應中在客戶端uri片段上捕獲令牌。我認爲它在位置標題上,但在我面前沒有一個實例。類似於: https://your.domain.com/#access_token = 8473987927394723943294

您將在每次api調用之後傳遞該令牌。

祝你好運!

相關問題