2015-12-18 50 views
0

我們正在嘗試開發一個Web應用程序,其中控制器(Servlet)應該作爲安靜的服務,最初,瀏覽器將充當客戶端,然後將來可能會有第三方應用程序耗費相同控制器的服務。Web應用程序充當Restfull應用程序的方法

所有控制器都會返回JSON數據,並且角色JS將使用它並在瀏覽器中顯示Web應用程序的內容,併爲第三方應用程序直接調用rest服務。

我的問題是如下

  • 如果我正在開發RESTful服務,然後我不應使用HTTP會話 即應我的控制器是完全無狀態

  • 如果我的應用程序應該是無狀態的,然後我將如何克服HTTP會話對象短缺(我如何攜帶用戶特定的 數據可能需要在不同的屏幕上)

  • 如果用戶在每個請求中提供憑證,將如何處理第三方應用程序的身份驗證?

回答

2

1)是的,你需要一種基於令牌的認證,換句話說你必須爲每個請求設置頭部。 Angular ngResource是你的朋友。例如:

i. Login (Basic Authentication) 
ii. Get Token from Server and store it e.g. in Cookies 
iii. Set header with each request (token: whatever) 
iv. If token is valid, server answers with data or enables further interaction 

2)用戶特定的數據將被存儲在$範圍(角期限)IST是像模型中的數據和操作的容器。如果你願意,你可以在本地堅持。或者將它發送到服務器(用一個有效的令牌來存儲它)

3)登錄,獲取令牌,進行通信。用戶權限和公司必須在服務器上正確設置。

+0

對於Web應用程序,我也必須使用基本的身份驗證,我想使用登錄頁面。但這應該無關緊要登錄頁面或基本身份驗證它都是關於設置cookie或請求標頭對於Restfull webservice我該如何做基本身份驗證應該或者他們應該在標題中設置用戶名/密碼,然後每次發送請求(包括第一次) – sumedha

+0

第一步:登錄。如果您的登錄名是正確的,您將從REST服務器獲得帶有令牌的答案。你必須在本地存儲它。然後,您將發送一個包含此令牌的標題。只要您的令牌有效並且您未註銷,服務器將讓您獲得資源。 –

+0

即使客戶端是我自己的HTML頁面,即Web應用程序而不是任何其他第三方應用程序,我是否永遠不會使用Restfull webservice的表單登錄頁面 – sumedha

相關問題