Безопасный способ проверить, если администратор вошел в систему и только тогда создавать специальные кнопки? - PullRequest
0 голосов
/ 10 марта 2020

Я создаю блог-сайт с нуля, поэтому я не использую никаких фреймворков, только простые html, css, javascript и php.

Что такое "хорошо" привычка "и безопасный способ проверить в Javascript, если администратор или какой-либо пользователь вошел в систему? Например, если зарегистрирован нормальный участник, я не хочу показывать кнопки / страницы, такие как «Новое сообщение» или «Удалить сообщение». Теперь я делаю это с ajax, я вызываю мой маршрутизатор. php (все запросы get и post обрабатываются там) и отправляю готовый клиентский файл ie на сервер, где маршрутизатор. php проверяет, есть ли cookie ["token"] равен session ["token"], и только тогда он отправляет информацию (имя пользователя и статус участника в функцию успеха ajax) в Javascript, и там я делаю что-то вроде if ( username == "admin"), затем показать "Кнопка удаления". Код:

if(document.cookie.indexOf("token") != -1){ // check if cookie["token"] exists
    $.ajax({    //create an ajax request to router.php
        type: "POST",
        url: "../php/router.php",  //cookie_check data only
        data: {"cookie_check" : document.cookie.split(';')[1].split("=")[1]},    
        dataType: "json",              
        success: function(response){
            // sign in button transform to username
            var username = response[0]["username"];
            var status = response[0]["status"];
            $("#signInMenu").empty();
            var usernameList = document.createElement("li");
            usernameList.innerHTML = username;
            usernameList.className = "usernameCss";
            document.getElementById("menuNavId").appendChild(usernameList);

            // check which page is loaded
            var sPath = window.location.pathname;
            var currentPage = sPath.substring(sPath.lastIndexOf('/') + 1);
            if(currentPage == "posts.html" && username === "admin"){
                  //PLACE BUTTONS
            }
       }
    });
}

Это работает, но я не думаю, что это правильный способ сделать это. Все мои представления находятся в. html файлах, контроллеры - JavaScript, которые включены в. html файлы, и в них я называю ajax, и есть только 1 php файл, который обслуживает все запросы от ajax. Можете ли вы как-то объяснить понятие / хорошая привычка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...