2013-03-25 90 views
1

我構建了一個單頁應用程序和一個REST API來處理來自客戶端和任何可能的第三方客戶端的請求。Api首頁和單頁應用程序

我的想法是創建三個服務器:

  • A - 的API,基於OAuth的
  • 乙 - 靜態的HTML/CSS/JS文件+諧音/視圖
  • Ç - 一個處理登錄的web服務器(節點或python或其他)

可能是第四個處理與Redis或其他任何事務的會話。

我想要的SPA,使用戶註冊和/或登錄到服務器C,給他的訪問令牌,讓他直接對話的API(A)。

我的問題是什麼是處理這個正確的機制?

  • 要設置會話cookie,與訪問令牌裏面,主要的應用程序客戶端(SPA),以便在會議上住
  • 要避免創建服務器時,它只要能交談的REST API C和服務器中的處理驗證,(怎麼樣的第三方服務呢?)
  • 別的

我的問題是有點亂,所以隨時問我更多的細節。

+0

我問過類似的問題,前一段時間,但並沒有獲得太多的反饋:http://stackoverflow.com/questions/15362639/how-to-do-authentication-with-a-single-page-app-and -API,後端 - 我建議從簡單的開始(R),但是... – poseid 2013-03-25 14:51:55

+0

是的,我已經看到了這個問題,還有更多,但不幸的是它並不夠健全清楚我。 「簡單(r)」是什麼意思? – Asdine 2013-03-25 14:55:08

+0

將OAuth退出開始......也許您可以使用剛剛簽名的請求? – poseid 2013-03-25 15:08:41

回答

0

什麼你基本上描述是「售票」系統,只有你調用票「令牌」。多年來,這個問題已經以不同的標準化協議以不同的方式處理。麻省理工學院開發的一個非常受歡迎的開放標準是Kerberos

如果可能的話我會強烈建議使用現有的協議和現有的實現。試圖「推出自己的」安全性非常非常困難,並且通常會導致易受攻擊的應用程序。想想已經千瘡百孔微軟多年來瘟疫,相較於* nix系統的:-)

相對安全的信譽我的第一個辦法是採用Kerberos或其他類似的協議。如果你死定了自己,那麼越簡單越好。我會用類似你的第二個解決方案和報廢服務器C的東西去做。當讓一個不同的服務器執行身份驗證時,出現錯誤的空間太大了。

我知道這是不是正是你所希望看到的答案,但我希望它能幫助。

+1

我不一定要設置票務系統,但是處理我的系統的身份驗證的好方法。我剛剛發現了單頁應用程序的世界,我不知道如何處理安全性和身份驗證。感謝您的答案btw :) – Asdine 2013-03-25 16:24:14