checkSignIn() функция JavaScript. Проверка статуса login/admin/guest.

248
30 января 2018, 11:00

Добрый день, уважаемые знатоки. Есть такая задача: Существует сайт (PHP backend, front - JS) На сайте существует отдельная страница с формой логина и формой регистрации. Необходимо было реализовать всплывающим окном эти формы а не отдельной страницей, это сделано, но теперь необходимо написать глобальную функцию checkSignIn(), которая вернет true, если пользователь зашел в систему, или вернет false, если пользователь вышел из системы. И в зависимости от этого статуса будет отрисововать другую верстку в навигационном меню, привожу фрагменты кода: Это сверстанное нав-меню

 <div id="primary-nav">
        <ul id="user-nav" class="collapse">
            <!-- Authentication Links -->
            <script>var crsfToken = '{{ csrf_token() }}';</script>
            @if (Auth::guest())
             <li class="vert-center" id="login">
                <a href="#popup"             >Login</a></li>
                {{-- <li class="vert-center"><a href="{{ url('/register') }}">Register</a></li> --}}
            @else
                <li class="vert-center"><span>Welcome {{ Auth::user()->firstname }}!</span></li>
                <li class="vert-center"><a href="{{ url('/customer') }}">Your Account</a></li>
                <li class="vert-center">
                    <a href="{{ request()->is('admin*') ? url('/admin/logout') : url('/logout') }}"
                       onclick="event.preventDefault();document.getElementById('logout-form').submit();">
                        Logout
                    </a>
                    <form id="logout-form" action="{{ request()->is('admin*') ? url('/admin/logout') : url('/logout') }}" method="POST" style="display: none;">
                        {{ csrf_field() }}
                    </form>
                </li>
            @endif

Это собственно функция (возможно не то, что нужно но я пытался через запросы к серверу это сделать видимо не туда смотрю)

function checkSignIn(){
var signForm = document.getElementById("signForm");
signForm.onsubmit = function (e) {
    e.preventDefault();
    const popup = document.querySelector('#popup');
    const email = document.getElementById("email").value;
    const passWord = document.getElementById("password").value;
    const body = '_token=' + encodeURIComponent(crsfToken) + '&email=' + encodeURIComponent(email) + '&password=' + encodeURIComponent(passWord);
    const isLogged = false;
    const login = new XMLHttpRequest();
    login.open("POST", 'http://.localhost/login', true);
    login.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    login.withCredentials = true;
    login.send(body);
    const facebook = new XMLHttpRequest();
    facebook.open("GET", 'https://.com.au/facebook/redirect', true);
    facebook.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    facebook.send();
    const signUp = new XMLHttpRequest();
    signUp.open("POST", 'http://.localhost/register', true);
    signUp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    signUp.send(body);
    login.onreadystatechange = function () {
        if (login.readyState == 4 && login.status == 200) {
        }
    }
    hide(popup);
}

}

Напоминаю бэкенд написан на PHP. Нужно написать метод checkSigIn который проверяет статус входа и отрисовует верстку в нужном месте.

READ ALSO
Импорт *.csv файла в MySQL

Импорт *.csv файла в MySQL

Ошибка: "Access denied for user

182
Лямбда-выражения и управляемый код

Лямбда-выражения и управляемый код

Имеется класс C++, написанный с применением управляемого кодаИ вот нелегкая привела меня вызвать в данном классе в одном из методов любой...

401