【发布时间】:2020-04-17 14:53:51
【问题描述】:
我正在构建一个single-page application,使用Vue 和laravel API 作为后端。
我尝试了一些packages,例如Vue Session,效果很好,但是在几乎每个API 调用中,我总是需要发送2 或3 个始终相同的参数(存储在vue-session),比如@ 987654329@ 和company_id。我曾经在我的其他应用程序中使用常见的PHP sessions(Zend_Session 和Zend Framework)来管理这个,这样我总是将这些信息存储在我的backendsession 中,并且不需要每次都发送它由frontend
这是我过去如何使用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)
));
这就是我使用Vue 和Laravel 的方法
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_id 和company_id 作为post param 发送。
在这种情况下,有什么办法可以更好地“重用”代码?
【问题讨论】:
-
Laravel Passport 可能值得一看(特别是 Consuming Your API With JavaScript)laravel.com/docs/5.8/…
-
我其实用的是laravel护照,token默认是在axios headers上发送的。
标签: laravel vue.js session vuejs2