gpt4 book ai didi

laravel - 使用 vue 和 laravel API 管理用户 session 数据的良好实践

转载 作者:行者123 更新时间:2023-12-02 14:50:59 24 4
gpt4 key购买 nike

我正在构建一个单页应用程序,使用Vuelaravel API作为后端。我尝试过一些软件包,例如 Vue Session它运行良好,但是在几乎每个 API 调用中,我总是需要发送 2 或 3 个始终相同的参数(存储在 vue-session 中),例如 user_idcompany_id。我曾经在其他应用程序中使用常见的 PHP session (Zend_SessionZend Framework)来管理它,这样我总是将这些信息存储在我的后端 session ,不需要每次都由前端发送

这是我过去如何使用 PHP session 执行此操作的示例

$model->insert(array(
'user_id' => $this->session->user_id, //stored in session
'company_id' => $this->session->company_id, //stored in session
'field1' => $this->getParam('field1'), //frontend param (ajax)
'field2' => $this->getParam('field2') //frontend param (ajax)
));

这是我如何使用 VueLaravel

const data = {
user_id: this.$session.get('user_id'), //this is what i'm trying to get rid of
company_id: this.$session.get('company_id'), //this is what i'm trying to get rid of²
field1: this.field1,
field2: this.field2
}

axios
.post('/api/some/endpoint', this.data)
.then(resp => {
//...//
})

基本上,在这个示例中,我不想总是将 user_idcompany_id 作为 post param 发送>.

在这种情况下有什么方法可以更好地“重用”代码吗?

最佳答案

1、您可以在cookie中保存您的 session 数据。浏览器会自动将您的cookie发送到服务器。用户注销时不要忘记删除 cookie。

2、如果您仍然想使用Vue session 或其他存储,您可以轻松创建一个方法来包装您的post方法并将用户信息添加到有效负载中

function postRequest(url, payload) {
payload.user_id = this.$session.get('user_id')
payload.company_id = this.$session.get('company_id')
return axios.post(url, payload)
}

每当您想发帖时都可以使用此方法。

关于laravel - 使用 vue 和 laravel API 管理用户 session 数据的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com