我如何在我的 nuxt vps 上使用 laravel csrf 令牌

Posted

技术标签:

【中文标题】我如何在我的 nuxt vps 上使用 laravel csrf 令牌【英文标题】:how can i use laravel csrf token on my nuxt vps 【发布时间】:2020-04-19 08:13:28 【问题描述】:

我开始使用 LaravelNuxt Js. 创建一个新应用程序。 我有两个 VPS 服务器:

    第一个包含我的 Nuxt JS(前端) 第二个是end 基于Laravel的点(后端)

我创建了很多页面,我将数据正确插入到我的数据库中。现在我尝试创建一个新函数来更新用户数据,但是在提交表单后出现错误,因为我使用相同的 axios 代码插入。

现在我在没有令牌的情况下工作,我知道它的不安全方式。 我想知道如何在 Nuxt JS 前端 Laravel 后端之间传递令牌。 我有两台服务器。

我得到的错误是:

CSRF token mismatch.", exception: "Symfony\Component\HttpKernel\Exception\HttpException

这是我的 Axios 代码:

edit (customerId, submit = false) 
  this.editMode = true
  this.customerId = customerId
  if (submit === 1) 
    const formData = $('#add-customer').serialize()
    this.$axios.$post('/customer/update', formData).then((response) => 
      this.refresh = true
    )
   else 
    this.$axios.$get('/customer/edit?customer=' + customerId).then((response) => 
      this.formFields = response.data[0]
    )
  

当我将此行从 post 更改为 get 时,它工作正常

this.$axios.$post('/customer/update', formData)

【问题讨论】:

【参考方案1】:

我建议使用单个 Redis 服务器进行会话管理,这样您就有了一个集中的位置。或使用数据库,有关更多详细信息,请查看 laravel doc

https://laravel.com/docs/6.x/session

【讨论】:

使用数据库是什么意思 您可以将 laravel 配置为将会话存储在数据库 laravel.com/docs/5.0/session#database-sessions 中,这样两台服务器将从同一个数据库中读取数据并具有集中的会话存储 好主意,我们建议我将创建第三个 vps(数据库服务器)。我的前端(nuxt,vps 服务器)将如何读取数据库。 (可能正在使用节点 js ?) 数据库服务器可以在其中一台服务器下,不必创建第三台服务器 请不要忘记为答案投票并标记它:)

以上是关于我如何在我的 nuxt vps 上使用 laravel csrf 令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何在后端使用 Nuxt 和 Django 在我的 axios 请求中发送 CSRFToken?

在 Debian 8 VPS 上托管 C# Discord 机器人

如何在我的 Nuxt 应用程序中正确设置 bootstrap-vue?

如何更改 Nuxt 构建的入口点?

如何在我的 VPS 服务器 (hostinger) 中更改我的 DocumenRoot?

如何突出显示在我的传单地图(nuxt/vue)中单击了哪个标记