未捕获(在承诺)csrf Vue js laravel

mkshixfv  于 2023-02-05  发布在  Vue.js
关注(0)|答案(1)|浏览(108)

我正在创建vuejs登录表单。我通过postman API工作良好。当我检查与vue js validtaion它是不工作。登录错误,未捕获(承诺)csrf Vue js laravel。我尝试到目前为止,我附在下面。我认为json验证问题,你可以检查它。我附在下面的完整源代码。

登录版本

<template>

    <div class="row">
    
    <div class="col-sm-4" >
     <h2 align="center"> Login</h2>
   
     <form @submit.prevent="LoginData">
   
    <input type="hidden" name="_token" :value="csrf">
     <div class="form-group" align="left">
       <label>Email</label>
       <input type="email" v-model="student.email" class="form-control"  placeholder="Mobile">
     </div>

    <div class="form-group" align="left">
    <label>Password</label>
    <input type="password" v-model="student.password" class="form-control"  placeholder="Mobile">
  </div>

     <button type="submit" class="btn btn-primary">Login</button>
     </form>
   </div>
   </div>

</template>
   
   <script>
       import Vue from 'vue';
       import axios from 'axios';
   
     Vue.use(axios)
     export default {
       name: 'Registation',
       data () {
         return {
            csrf: document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
           result: {},
           student:{
                      email: '',
                      password: ''
           }
         }
       },
       created() { 
       },
       mounted() {
             console.log("mounted() called.......");
         },
       methods: {
              LoginData()
              {
               axios.post("http://127.0.0.1:8000/api/login", this.student)
               .then(
                 ({data})=>{
                  console.log(data);
                  try {
                  if (data === true) {
                        alert("Login Successfully"); 
                        this.$router.push({ name: 'HelloWorld' })
                        } else {
                        alert("Login failed")
                        }

                        } catch (err) {
                        alert("Error, please try again");
                        }    
                 }
               )
              }
         }
     }
     </script>

登录控制器

public function check(Request $request)
{

 $credentials = $request->validate([
 'email' => ['required', 'email'],
 'password' => ['required'],
    ]);
    
    if (Auth::attempt($credentials)) 
    {
     
     return response()->json(['data' => true ]);

     }
    
     return response()->json(['data' => 'Fail']);
    
   }
}
bvhaajcl

bvhaajcl1#

根据Laravel 9 docs,你必须发送csrf令牌。这里是谈论它的链接:
https://laravel.com/docs/9.x/sanctum#csrf-protection

相关问题