programing

vue 및 laravel API를 사용하여 사용자 세션 데이터를 관리하는 모범 사례

yoursource 2022. 10. 23. 18:31
반응형

vue 및 laravel API를 사용하여 사용자 세션 데이터를 관리하는 모범 사례

나는 건설하고 있다single-page application와 함께Vue그리고.laravelAPI를 백엔드로 합니다.나도 먹어봤어packagesVue 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

반응형