Есть ли способ создать «базу данных» для регистрации / входа в систему, используя обычный текст и javascript?

#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(данные); } }); ` Ссылка, которую я разместил выше, содержит всю документацию. Если вы считаете, что этот ответ полезен, отметьте вопрос как решенный.