Ich habe eine einfache Backbone.js App, die json-server als Backend verwendet. Ich habe eine Funktion, um mich anzumelden, die einen Benutzer aus der Sammlung findet, aber ich bekomme nicht, wie ich meine Sitzung speichern werde. Ich habe darüber nachgedacht, einen Parameter in Cookies zu speichern, der später bei jeder Weiterleitung überprüft wird. Hier ist mein Modell:Session-Parameter in Cookies speichern
var User = Backbone.Model.extend({
defaults: {
login: '',
password: '',
authToken: ''
}
});
Und hier ist meine Sammlung:
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});
}
});
Und das ist die Ansicht mit Login-Funktion
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
}
});
}
}
});
Diese Funktion gibt mir ein Array mit einem Objekt, das ist mein Wunschmodell. Alles, was ich brauche, ist meine setToken
Methode zu verwenden und dieses Modell authToken
in Cookie zu speichern, damit ich es an anderer Stelle in der App verwenden konnte, aber ich bekomme eigentlich nicht, wie man das macht.