2014-12-08 47 views
3

我試圖開發使用Backbonejs和SLIM架構的應用程序。現在我想開發用戶登錄/註銷功能。在這種情況下,當用戶從一個頁面導航到另一個頁面時,我想讓SESSION保持在服務器中。以前我曾經工作過另一個PHP框架和核心PHP,併成功實現了用戶認證。 SLIM框架作爲API工作。其實我的問題是「如何認識當前的會話存活使用HTTP請求從Backbonejs的API?」用戶Authentiation使用Backbonejs和SLIM架構

它看起來雜亂無章我。我讀了幾個像下面這樣的stackoverflow後,但無法找到解決方案。

How to do authentication with a REST API right? (Browser + Native clients)

If REST applications are supposed to be stateless, how do you manage sessions?

How to use PHP sessions with REST client application ?

我希望用Backbonejs和SLIM架構爲API.If他/她分享他/她的一些示例代碼經驗有人對你實行用戶認證,即將是一個大幫我。

謝謝

回答

2

我不確定Slim API。但對於Restful Web服務,沒有會話概念。

相反,你可以有一個HTTP頭令牌隨身攜帶您的身份驗證令牌,這可能令牌表被持久(用戶表爲例)。可以進行檢查以確保每次請求到達服務器時令牌有效。在註銷時取消標記。

郵政認證,從成功回調進行登錄操作,您可以觸發已經綁定加載成功頁面自定義事件。

EG:

Intialise at the application level。

var controller = _.extend({}, Backbone.Events); 
controller.on("myapp:dashboard",function() { 
    //your dashboard data fetch logic. 
    //create instance of the view and pass fetched data. 
}); 
在登錄成功處理程序(回調)

進行下面的調用:

Delegates to the custom controller. 
controller.trigger("myapp:dashboard"); 

Changes the url to the correct location. 
myAppRouter.navigate("tourl",{trigger:false}); 

參考: http://lostechies.com/derickbailey/2012/04/03/revisiting-the-backbone-event-aggregator-lessons-learned/

0

我巴拉吉同意,但他是不準確的。 REST有會話,但您必須將其保留在客戶端。如果你想要寫什麼到會話,你必須與響應主體發送回,所以客戶端可以處理和存儲。如果你想從會話中讀取任何東西,你必須發送請求,所以服務器可以處理它。

所以如果你想做訪問控制,你應該保留用戶名和密碼在客戶端的內存中,並且每次都要重寫backbone.sync()來發送auth頭文件。在授權之前的服務器端,您必須通過memcached使用緩存{username+password} -> {identity+permissions}來驗證每個請求。通過SLIM你需要提取標題,我不認爲這會導致問題。 SLIM沒有內置的認證和授權支持,因爲它只是一個HTTP lib,因此您需要另一個工具來實現該部分。