2012-05-20 64 views
7

開始學習backbone.js和require.js。backbone.js + require.js +用戶認證

不確定如何使用用戶身份驗證爲Web應用程序構建文件。

看來它應該流是這樣的:

  1. 在應用程序初始化,查詢服務器檢查身份驗證會話狀態;
    • 問題1:我應該在哪裏寫'init'後的會話代碼 - in /js/app.js?我是否應該爲此使用jQuery ajax,或者是否有更好的backbone.js方法(我已經在例子中看到了對get(),fetch(),toJSON()的引用)?
  2. 如果成功,請將驗證數據存儲在模型(user_id,username,auth_token)中。
    • 問題3:我如何啓動此模型以便我可以在整個模塊中訪問數據?即。我將看到顯示「isLoggedIn.html」的模板,該模板將顯示「Hello%username%!Logout」。我想從這個模型中訪問'用戶名'字段。目前,我只看到如何通過在視圖的define []中引用它來創建新模型,所以我不知道如何訪問在init中創建的模型。
  3. 將使用jQuery $ .cookies保存並獲取此驗證數據,因此如果用戶離開頁面並返回,我可以查詢服務器來檢查會話而不是要求用戶再次登錄。
    • 問題4:如何將jquery.cookies.js插件包含到此requirejs應用程序中,以便我可以像往常一樣使用$ .cookies?我是否應該將此插件添加到define []列表中?我必須將其添加到/js/jquery/loader.js文件嗎?

謝謝您的幫助。

編輯:我使用modular-backbone示例創建我的網絡應用程序的文件。所以當我在談論/js/app.js和js/router.js時,這就是我所指的文件。

+1

對於Q3:您是否可以創建用戶模型,然後在構建這些視圖時將它傳遞給相關視圖? –

+0

另外,你是什麼意思,你只能在定義中引用它時創建一個新模型?發佈該模型的代碼片段? –

+0

我正在使用模塊化骨幹結構。所以在我的app.js中,我創建了'var credentials = new authModel()'。根據我的理解,我必須在登錄視圖中訪問這個'credentials' var。但憑證不是全局變量,因此在登錄視圖中,憑證爲空 - 沒有看到任何數據。 – codemonkey613

回答

2

我也處於同樣的狀況。 我發現this post,看起來在每次請求之前做一些事情的最佳選擇是使用this solution

在訪問和除了/ login之外的URL之前,我要通過cookie進行身份驗證或運行登錄視圖。

關於包括其他文件夾(jQuery的餅乾)的方式 - 只使用require.js機制:

  1. 在你的主文件「require.config」 - >「路徑」添加插件位置(jqueryCokkie :)
  2. 在視圖下的「定義」添加路徑名(「jqueryCookie」),並把它傳遞給finction
  3. 的.js文件應在following structure(我想在這裏粘貼代碼示例,但有問題...)。