【发布时间】:2016-10-18 01:21:31
【问题描述】:
我有一个简单的 Backbone.js 应用程序,它使用 json-server 作为后端。我有一个登录功能,可以从集合中找到一个用户,但我不知道如何保存我的会话。我考虑过在 cookie 中存储一个参数,稍后将在每次重定向时检查该参数。这是我的模型:
var User = Backbone.Model.extend({
defaults: {
login: '',
password: '',
authToken: ''
}
});
这是我的收藏:
var UserCollection = Backbone.Collection.extend({
url: 'http://localhost:3000/users',
// creates a random token
setToken: function () {
var rand = function () {
return Math.random().toString(36).substr(2)
}
var token = rand() + rand();
this.set({authToken: token});
}
});
这是带有登录功能的视图
var LoginView = Backbone.View.extend({
initialize: function () {
this.collection = new UserCollection();
// template
}
// render function omitted
signIn: function () {
var login = $('#login').val();
var password = $('#password').val();
/**
finds a user within with the values from input fields
inside the collection
*/
if (login && password) {
this.collection.fetch({
data: {
login: login,
password: password
}
});
}
}
});
此函数返回一个数组,其中一个对象是我请求的模型。我所需要的只是使用我的setToken 方法并将这个模型的authToken 保存在cookie 中,以便我可以在应用程序的其他地方使用它,但我实际上不知道如何做到这一点。
【问题讨论】:
标签: javascript cookies backbone.js