2013-12-18 35 views
2

我正在製作一個Android應用程序,它將從我的API中獲取數據。如何驗證Android應用程序的請求

我的應用程序要做的第一件事就是讓用戶使用他們的憑據進行登錄。

  • 我的問題是我的API需要處理會話嗎?或者我應該爲每個請求驗證用戶身份?
  • 原生android應用程序會在設備上持有用戶憑據,並在登錄後爲每個請求發送它們嗎?
  • 我正在使用Retrofit。如何在登錄後發送用戶憑據?

回答

-1

這將是深入探索OAuth的好時機。你的用例似乎完美匹配。您將需要2個主要步驟:身份驗證和授權。我在這裏簡要地解釋了它們:Authentication of a resource in Dropwizard。您可以忽略DropWizard部分,REST概念保持不變。描述的簡短版本可能是這樣的:用戶在手機上安裝您的應用程序。他們使用他們的用戶名和密碼(通過SSL向您的REST發送POST請求)驗證一次。您的服務會對用戶進行身份驗證,並在應用程序的服務端映射並保存access_token/refresh_token時,使用應用程序保存的「refresh_token」和「access_token」返回。隨着每個後續請求,您的應用程序將發送「access_token」作爲「身份驗證」標題的一部分,您在服務器端會解析並檢查access_token是否仍然存在(假設access_token已過期)以及是否存活,然後完成授權/認證過程。如果有機會,訪問令牌已過期,則401將返回到您的應用。應用程序將不得不使用「refresh_token」來獲得一個新的access_token,並且一旦獲得了新的access_token(它再次在服務器端映射到用戶的身份),所有後續的調用將使用新的access_token,直到它到期。這是一個簡單的OAuth版本,不符合規範。這是一個非常基本的身份驗證/授權流程來幫助您開始。我希望這有幫助!

相關問題