#javascript #html #login
#javascript #HTML #аутентификация
Вопрос:
Я делаю проект для школы и пытаюсь реализовать кроссбраузерный скрипт входа в систему. По сути, я хочу, чтобы регистрация записывала в обычный текстовый файл имя пользователя и пароль, в то время как логин проверяет этот обычный текст, чтобы увидеть, совпадает ли он без использования PHP или mysql. Я полностью осознаю, насколько невероятно глупо хранить логины пользователей с помощью обычного текста, и это то, чего я хочу.
В настоящее время у меня есть система, в которой хранится информация в вашем браузере, но она не работает в разных браузерах, и учетная запись не является постоянной. Код ниже —
function setupForm(){
const form = document.getElementById("login-form");
form.addEventListener("submit", handleSubmit);
}//setupForm
function handleSubmit(event){
event.preventDefault();
const {
username,
password,
login_type,
result
} = event.target;
const processUser = login_type.value == "register" ? registerUser : loginUser;
const response = processUser(username.value, password.value);
result.innerHTML = response;
}//handleSubmit
function registerUser(username, password){
window.localStorage.setItem("exampleLogin__username", username);
window.localStorage.setItem("exampleLogin__password", password);
return `New user ${username} now registered!`;
}//registerUser
function loginUser(username, password){
const registeredUser = window.localStorage.getItem("exampleLogin__username");
const registeredPassword = window.localStorage.getItem("exampleLogin__password");
const validUser = username == registeredUser;
const validPassword = password == registeredPassword;
if(validUser amp;amp; validPassword){
window.location.href = "benny/index.html";
}
else if(!validUser) return `Username ${username} has not been registered. `;
else if(!validPassword) return `Incorrect password for username ${username}`;
}//loginUser
При этом информация сохраняется в браузере, поэтому она не является постоянной и не работает на разных платформах. Я хотел бы, чтобы javascript записывал в файл, а другая часть считывала этот файл и проверяла его.
Комментарии:
1. Javascript — это скрипт на стороне клиента и не может ничего записывать на сервер или компьютер пользователя (кроме cookie или localStorage). Что вы подразумеваете под «не работает на разных платформах»?
Ответ №1:
чтобы сохранить данные пользователей и сделать их доступными в разных браузерах, эти данные должны находиться на каком-то сервере, с которым пользователи общаются при регистрации или попытке входа в систему. Если ваша цель — просто не использовать серверную часть, и вы не заботитесь о безопасности этих пользовательских данных, вы можете просто сохранить их и получить к ним доступ в облачном файле. вы можете использовать, например http://myjson.com/api где вы можете сохранить все свои данные в файл json, обновить его и получить к нему доступ с помощью простых http-запросов, которые вы можете выполнять с помощью jQuery
Комментарии:
1. Я использую github для размещения веб-сайта, смогу ли я сохранить его в другом файле, размещенном в том же репозитории, если да, то как будет выглядеть код для чего-то подобного?
2. Нет, вы не можете получить доступ к файловой системе, используя javascript на стороне клиента.
3. Итак, если бы я должен был сделать это так, как вы сказали, из myjson, каким был бы код для этого?
4. что-то вроде: (для сохранения новых данных) ` $.ajax({ url: » api.myjson.com/bins/yourURL «, тип: «PUT», данные: JSON.stringify(yourObject), тип содержимого: «application / json; charset=utf-8», тип данных: «json», успех: функция (данные) {console.log(данные); } }); ` Ссылка, которую я разместил выше, содержит всю документацию. Если вы считаете, что этот ответ полезен, отметьте вопрос как решенный.