2015-09-07 80 views
0

我嘗試了第一次分離的基礎設施。通過分離式基礎設施,我的意思是我有2個獨立的應用程序:非用戶的API安全性

  1. Rails應用程序,僅作爲一個API服務
  2. 角的應用程序,需要的所有前端的東西護理

目前,它的一個非常簡單的過程(因爲我正在學習更多關於集成2個應用程序)。我知道平臺之間的溝通應該通過某種基於令牌的身份驗證等來保證。 我看了一下devise_token_authng-token-auth

我很困惑,因爲我目前不會向任何外部團體開放我的API。因此,我希望能夠使用我的API的唯一系統是我自己的(一組密鑰)。

我說得對,我將使用devise_token_auth生成我的密鑰,然後將它添加到我的環境變量在服務器和客戶端?由於這些值目前是靜態的(不會用戶特定的)

+0

靜態令牌?也許只是不打擾保護。這將是相同的安全級別。 –

+0

在下面的評論中,我詳細闡述了一些。所有請求將來自公共領域(目前沒有任何用戶登錄等)。因此,我是否需要添加任何Auth? @SergioTulentsev – Herm

回答

1

驗證的定義類似於「確認用戶是他所說的他是誰」。由於您沒有任何用戶,因此auth不適用於此。

有人可能會爭辯說,在您的情況下,「用戶」是角客戶端,因此,不知道令牌的外部用戶(其他應用程序/腳本)將被拒絕。但是,訪問令牌也是公共知識,它不會對垃圾郵件或任何您試圖通過此機制實現的任何保護添加任何保護。

所以,不要打擾它。

1

您可以使用基於令牌的身份驗證系統來保護您的後端免受不受歡迎的請求,每次驗證後(使用登錄名/密碼)您的後端將生成令牌並將它發送到您的客戶端應用程序,該應用程序將在本地存儲它(localstorage)。使用角度攔截器,您可以輕鬆攔截所有客戶端請求,並在每個請求的標頭中插入令牌,最後,您必須在每個請求中檢查令牌的存在和有效性。

https://github.com/lynndylanhurley/devise_token_auth似乎是你的問題在服務器端,再加上響應(如果你不想自己去實現它)https://github.com/lynndylanhurley/ng-token-authhttps://github.com/sahat/satellizer(我喜歡這個),你可以建立一個非常堅實的制度。

+0

嗨@KimiBst這個解決方案適用於更復雜的系統。然而,在這種情況下,我真的只想習慣於整合2個平臺。因此我還沒有任何用戶身份驗證。唯一的集成將用於保存到數據庫的聯繫表單。任何訪問角度web應用程序的人都可以使用該聯繫表單。看看你的迴應,讓我覺得我需要以不同的方式提出這個問題......「我需要驗證API可用於公共領域的API請求嗎?」 – Herm

+1

如果您希望您的API公開,特別是使用靜態令牌(不提供任何安全性),我認爲您不需要添加任何驗證。 – KimiBst