vue 및 laravel API를 사용하여 사용자 세션 데이터를 관리하는 모범 사례
나는 건설하고 있다single-page application
와 함께Vue
그리고.laravel
API를 백엔드로 합니다.나도 먹어봤어packages
Vue Session처럼 잘 작동했지만 거의 모든 부분에서API
콜 항상 같은 파라미터 2개 또는3개를 송신할 필요가 있습니다(저장되어 있습니다).vue-session
)와 같은user_id
그리고.company_id
나는 이것을 공통으로 관리하곤 했다.PHP sessions
(Zend_Session
와 함께Zend Framework
다른 어플리케이션에서는 이 방법으로 항상 그 정보가 저장되어 있습니다.backend
session
매번 보낼 필요가 없습니다.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
.
이런 경우에 더 나은 코드 "재이용"을 얻을 수 있는 방법이 있을까요?
1, 쿠키에 세션 데이터를 저장할 수 있습니다.브라우저는 자동으로 쿠키를 서버로 보냅니다.사용자가 로그아웃할 때 쿠키를 삭제하는 것을 잊지 마십시오.
2, Vue 세션 또는 기타 스토리지를 계속 사용하려면 포스트 메서드를 랩하는 메서드를 쉽게 만들고 사용자 정보를 payload에 추가할 수 있습니다.
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)
}
투고를 하고 싶을 때는, 이 방법을 사용해 주세요.
언급URL : https://stackoverflow.com/questions/59504083/good-practices-to-manage-user-session-data-with-vue-and-laravel-api
'programing' 카테고리의 다른 글
리스트의 이해가 다른 경우 (0) | 2022.10.23 |
---|---|
Visual Studio 오류:편집을 위해 저장 프로시저를 로드할 수 없습니다. (0) | 2022.10.23 |
Java: 정적 클래스? (0) | 2022.10.23 |
Amazon RDS 데이터베이스 서버 인스턴스에서 "mysqladmin flush-hosts" 명령을 실행하는 방법 (0) | 2022.10.23 |
setAccessible을 "합법적" 사용으로만 제한하는 방법 (0) | 2022.10.23 |