0

我在我的 SPA 项目中使用 laravel airlock auth。

根据文档https://laravel.com/docs/master/airlock,登录时需要以下代码:

axios.get('/airlock/csrf-cookie').then(response => {
   // Login...
});

但是,当我注释代码时,登录脚本仍然可以访问 API 控制器。

这是我下面的代码:

// axios.get('/airlock/csrf-cookie').then(response => {
      axios.post('api/login', {
        email: this.email,
        password: this.password
      })
      .then(response => { 
        console.log(response);
      })
      .catch(error => {
         self.errors.push(error.response.data.message)
       });
 // })

那有什么用axios.get('/airlock/csrf-cookie')呢?

4

1 回答 1

0

这是因为您在为您的 SPA 应用程序(HTML/JS/CCS)加载评估时已经访问了域,并且在那一刻初始化了 Laravel CSRF 保护。

想象一下,您的 API 在不同的域中,那么您必须使用 get 调用来初始化 CSRF 保护/airlock/csrf-cookie

于 2020-03-18T19:04:34.713 回答