2013-03-14 146 views
1

我爲Java中的移動應用程序開發了許多無狀態的RESTful Web服務,它們工作得非常好。RESTful webservice with auth for mobile application

例如:

現在,我有因爲我有不同的數據發送回移動爲擴大這些服務每個用戶。所以我需要在服務器端知道哪個用戶試圖獲取或設置信息。我必須防止未經授權的用戶使用。

有兩種不同的方式如何,用戶可以登錄到移動應用程序:使用應用程序帳戶

我需要開發兩種登錄

  1. 通過Facebook登陸帳戶
  2. 日誌和註銷服務,因爲使用移動應用程序的用戶必須登錄到應用程序。

    我讀了很多關於auth,RESTful和OAuth的文章。 我想我必須開發兩個輸入參數的登錄服務:用戶名和密碼。

    例如:

    • locallogin的(字符串用戶名,字符串密碼) - >標記
    • facebookLogin(字符串用戶名,字符串密碼) - >標記

    這些登錄服務是要產生一個相同的標記並將其發送回http頭中的移動應用程序。在登錄過程之後,移動客戶端有一個令牌。客戶端在進行RESTful服務器調用時必須將此令牌發送到服務器。

    您認爲如何?我的想法很好嗎?

    如果是這樣,你能幫助我,我該如何開始在Java中開發這個?

    如果不是,你能告訴我好方法嗎?

+0

您確定您可以做到這一點嗎?:facebookLogin(String username,String password) - > token – 2013-03-14 13:49:20

+0

我不知道如何開始開發這些登錄功能的好方法。你能告訴我你的意見嗎? – zappee 2013-03-14 14:29:43

+0

我在想你的問題,我也讀了一些新的文章。這不是實現facebookLogin(...)服務的好方法。我不想實施Facebook登錄程序,我不想知道我的用戶的Facebook帳戶詳細信息。 我想,我們必須在客戶端實現Facebook登錄功能。 – zappee 2013-03-15 08:15:42

回答

2

您不需要2次登錄程序。只需使用Facebook SDK!

i)在你的應用程序將是一個登錄facebook的按鈕。

ii)用戶點擊它,然後重定向到Facebook登錄頁面,在那裏用戶輸入他的憑據,Facebook向您返回一個令牌。您不必擔心用戶的Facebook憑據或將它們存儲在任何地方! Facebook將爲你處理。將FB登錄部分視爲應用程序的黑盒 - 您只需創建一個FB SDK的登錄調用,它將執行一些過程並將訪問令牌返回給您的應用程序。

iii)現在,您可以交換用戶配置文件信息的訪問令牌。輸入此配置文件信息到您的數據庫 - 這將確保認證的呼叫。

驗證用戶已登錄後,您可以執行任何操作。