Это упрощает поток для вашего приложения:
-
Каждый раз, когда пользователь открывает ваш сайт, проверьте его файлы cookie.
-
Если файлы cookie содержат информацию о пользователе (сохраненное имя пользователя, пароль), проверьте соответствие информации с вашей БД. Если это согласовано, перейдите на главную страницу. В противном случае, очистите файлы cookie, перейдите на страницу входа в систему
-
Если файлы cookie не содержат информацию о пользователе, перейдите на страницу входа в систему
-
-
На странице входа в систему, после успешного входа пользователя, сохраните информацию о пользователе в файлы cookie для проверки следующего времени.
Вы можете использовать некоторый механизм для кодирования информации пользователя (токены, шифрование ...) для защиты информации, хранящейся в файлах cookie / сеансах. Но хранить аутентификацию БД в клиенте - это действительно слабая точка безопасности. Пример кода ниже:
Модель:
var User = Backbone.Model.extend({
url: function () {
return "users" + this.attributes.login + "&password=" + this.attributes.password;
},
isAdmin: function () {
return (this.get("role") == "admin");
}
});
На ваш взгляд:
// Load username password from cookie (just simple example)
var username = $.cookie("username"),
password = $.cookie("password");
if (username && password) {
var userModel = new User({
login: username,
password: password
});
userModel.fetch({
success: function () {
if (userModel.isAdmin) {
// e.g. go to admin page
} else {
// e.g. go to normal user page
}
// Save to cookie/session here
},
error: function () {
// Go to login page
}
});
} else {
// Go to login page
}
О cookie, вы можете указать Как установить / удалить файл cookie с помощью jQuery?
О получении формы ввода имени пользователя и пароля вы можете просто использовать простой селектор jQuery (очень просто для него, например https://www.formget.com/jquery-login-form/ )