2011-06-02 106 views
1

我目前正在Go中編寫Web應用程序後端。爲標準jQuery AJAX前端提供某種API以與我的後端進行交互的最佳方式是什麼?Web應用程序後端身份驗證和交互

現在,我有一些函數接受一些數據,執行操作並返回其他數據,但我應該從哪裏去?我有一個模糊的想法,即在某個端口上偵聽JSON編碼的函數調用並返回該函數的JSON編碼輸出,但是(如果這是完成此操作的好方法),完成此操作的最佳方式是什麼?

此外,我應該如何處理Go/AJAX的登錄系統和/或身份驗證?是否有意義爲該用戶返回一些唯一的哈希鍵(如果選擇了持久登錄,則將其保存到cookie中),將該鍵存儲在內存中,並將該鍵作爲每個JSON編碼的函數調用的參數發送給服務器?或者,有沒有更好的方法來完成這個(我對登錄系統不熟悉)或者可能已經爲Go開發的解決方案?

+0

http://buu700.com/sampleapi - AJAXy/JSONy API層後面的函數示例。 – 2011-06-02 10:09:34

+0

您是否聽說過'web.go'或go app-engine SDK?你有一臺服務器在運行嗎? – 2011-06-05 08:57:28

+0

我已經看過web.go的頁面,但沒有看到很多內容;它是否通過'http'包增加了更多?我有我自己的服務器運行,所以我根本不會使用GAE。 – 2011-06-07 05:58:30

回答

1

Goajax是一個JSON-RPC包。這種風格有點通過JSON傳遞函數名和參數,並且它返回JSON作爲答案。

個人而言,我更喜歡REST -services。 REST使用標準的Web技術,特別是HTTP和URI來傳遞資源以及對它們做什麼。 JSON對此也非常有效。對於REST服務,有rest.go庫(也是fork)。

對於驗證,您可能需要查看authcookie。 「實現簽名認證cookie的創建和驗證。」

通過cookie(或param作爲備選)使用auth-hash是一種常用方法。確保你知道,但是,你讓他們安全。使用HTTPS防止竊聽(無線局域網,發佈網絡,中間人)。你如何首先驗證他們取決於你實際在做什麼。還要確保考慮會話的生命週期。

相關問題