У меня есть простое приложение Backbone.js с моделью User
с разными ролями, и я использую json-server для эмулировать некоторые основы бэкэнда. Мне нужно выполнить базовую аутентификацию, т.е. мне нужно, чтобы мой пользователь мог войти в систему и где-то сохранить свою сессию (для этого ему не нужно будет входить в систему каждый раз, когда он обновляет свой браузер). У меня есть файл db.json
, в котором уже есть несколько пользователей:
{
"users": [
{
"login": "admin",
"password": "password",
"role": "admin",
"id": 1
}
]
}
а вот моя модель User
:
var User = Backbone.Model.extend({
defaults: {
login: "",
password: "",
role: ""
},
// Updated
url: function () {
return "http://localhost:3000/users?login=" +
this.attributes.login + "&password=" + this.attributes.password;
}
});
Я не совсем понимаю, как мне управлять аутентификацией (т.е. вводить login
и password
в форму и сохранять сеанс пользователя без надлежащего бэкэнда). Я подумал о том, чтобы создать поле token
в моей модели User
и заполнять его каждый раз, когда пользователь входит в систему, и сохранять его в файлах cookie, но я не понимаю, как я мог сделать это в любом случае. Буду очень признателен, если кто-нибудь поможет мне с этой задачей.
ДОБАВЛЕНО На мой взгляд, это моя функция входа в систему:
signIn: function () {
var login = $('#js-login').val();
var password = $('#js-password').val();
if (login && password) {
var currentUser = new User({
login: login,
password: password
});
currentUser.fetch({
success: function () {
console.log(currentUser.toJSON());
},
error: function (err) {
console.log(err);
}
});
}
}
Но вместо того, чтобы найти пользователя с моего json-сервера, он просто создает нового пользователя со всеми пустыми атрибутами, кроме значений полей ввода #js-login
и #js-password
ДОБАВЛЕНО Думаю, мне следует найти пользователей по запросу в url
выше в моей коллекции, но я на самом деле не понимаю, как мне это сделать