После входа в систему через Laravel & vuejs ответ вернет ошибку Unauthenticated - PullRequest
0 голосов
/ 12 октября 2019

Я работаю в проекте, использующем laravel 5.8, включающего мульти аутентификацию для пользователей и администраторов. пользователи и администраторы находятся в разных таблицах. Я использую vue в процессе входа в систему. Проблема в моем проекте заключается в том, что после ответа при входе в систему возвращается сообщение об ошибке Unauthenticated AdminLogincontroller

public function doLogin(Request $request){
    $this->validate($request, [
        'email'   => 'required|email',
        'password' => 'required|min:6'
    ]);
    if(Auth::guard('admin')->attempt(['email'=> $request->email,'password'=>$request->password],true)){
        //return response()->json(['name'=>Auth::guard('admin')->user()->name],200);
        return redirect()->intended('/dashboard/index');
    }else{
        return response()->json(['error'=> 'Wrong Email Or Password Please Try Again'],422);
    }
}

компонент входа в систему vue

<template>
<div class="container-login100">
    <div class="wrap-login100 p-l-55 p-r-55 p-t-80 p-b-30">
        <form class="login100-form validate-form" method="post" @submit.prevent="login">
            <span class="login100-form-title p-b-37">
                Sign In
            </span>

            <div class="wrap-input100 validate-input m-b-20" :class="" data-validate="Enter your Email">
                <input class="input100" type="email" v-model="email" name="email" placeholder="Enter your Email">
                <span class="focus-input100"></span>
            </div>

            <div class="wrap-input100 validate-input m-b-25" data-validate = "Enter password">
                <input class="input100" type="password" v-model="password" name="pass" placeholder="password">
                <span class="focus-input100"></span>
            </div>

            <div class="container-login100-form-btn">
                <button class="login100-form-btn" @click="login" :disabled="!validEmailAndPassword">
                    {{ loading ? 'Loading Please Wait ....' : 'Sign In' }}

                </button>
            </div>

            <div class="text-center">
                <br>
                <a href="#" class="txt2 hov1">
                    Forget Password
                </a>
            </div>
        </form>
    </div>
</div>

это код входа в систему через vue

<script>
import axios from 'axios';
export default {
    data(){
        return{
                email : '',
                password : '',
                loading : false,
                errors:[],

        }
    },
    methods:{
        checkEmailVail(){
            if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.email))
            {
                return true;
            }else{
                return false;
            }
        },
        login(){
            this.loading = true;
            this.errors = [];
                axios.post('/dashboard/cpLogin',{
                    email:this.email,
                    password:this.password
                }).then(res => {
                    toastr.success('Welcome Back '+res.data.name);
                    setTimeout(function () {
                        window.location.href = '/dashboard/index'; }, 2000)

                })
                    .catch(err =>{
                        this.loading = false;
                        toastr.error(err.response.data.error);
                    })
            }

    },
    computed:{
        validEmailAndPassword(){
            return this.checkEmailVail()&&this.password&&!this.loading;
        },

    }
}

1 Ответ

0 голосов
/ 12 октября 2019

Не будет ли @csrf protection?

Код для интеграции:

В макете

<meta name="csrf-token" content="{{ csrf_token() }}">

в форме (шаблоне)

<input type="hidden" name="_token" :value="csrf">

В данных (сценарий)

csrf: document.querySelector('meta[name="csrf-token"]').getAttribute('content')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...