从服务器端代码获取会话信息到客户端代码



在我正在使用Node,Express和Backbone开发的网站上,我使用常规HTML表单登录用户,成功登录后,将创建用户会话。在服务器端访问此会话信息很容易,使我可以访问用户 ID、用户名等,但我不确定如何在 Backbone 中访问此信息。

我想获取用户 ID,以便我可以为集合创建一个 URL,如下所示:

url: '/api/users/'+ this.userID +'/movies'; 

但是我不确定如何最好地根据服务器端的会话数据获取用户ID。这是否需要创建另一个模型 - 例如,通过特定url/get请求从服务器获取会话数据的"用户"模型?

谢谢!

我想

出了一些东西,但仍然愿意接受建议:

首先,在 Express 中创建一个返回 userId 的函数.js该函数:

app.get('/api/current-user', middleware.requiresLogin, function(req, res){
  res.send(req.session.user._id);
});

其次,在客户端,使用 Backbone 模型或 $.get 请求检索 ID:

var userID = $.get("/api/current-user");
$.when(userID).then(function(data){
    var user = new userCollection(data);
    user.fetch();
});

使用集合和模型执行此操作:

window.userModel = Backbone.Model.extend({
    idAttribute: "_id"
});
var userCollection = Backbone.Collection.extend({
    model: userModel,
    initialize: function(options){
        this.url = "/api/users/"+options+"/movies";
        this.model.urlRoot = "/api/users/"+options+"/movies";
    }
});

myModel.save(); 则正常工作。

相关内容

最新更新