반응형
Vue Router에서 발송된 후 저장소 데이터를 올바르게 업데이트하지 마십시오.
나는 부에로터(vue-roouter)에서 보호되는 몇몇 경로를 가지고 있다. 이것은 부에로터(vue-roouter)의 경로의 메타 속성을 통해서 한다.
인덱스 경로를 로드할 때, 즉 모든 레코드에 편집 버튼이 표시되는데, 그 순간 이 권한이 있기 때문에 해당 사용자를 업데이트하면 관리자와 함께 다른 패널로 가서 해당 권한을 제거한다.이제 일반 사용자에게 가서 내 테이블의 편집 버튼을 넘겨주면, 나는 그 순간 그 권한이 없기 때문에 403번 경로로 보내야 하지만, 그것은 내가 권한을 업데이트하는 다른 경로로 가는 다음 네비게이션으로 나를 보내야 한다.이 문제를 어떻게 해결하지?
router.beforeEach((to, from, next) => {
store.dispatch('ME'); // get permissions before navigate route
if (to.matched.some(record => record.meta.permission_name)) {
// I check if the route permits, otherwise send to route 403
if(!store.getters.containsPermission(to.meta.permission_name)){
next({name : '403'})
}
else{
next()
}
}
else{
next()
}
})
권한은 Laravel 및 Laravel 권한을 사용하는 백엔드의 데이터베이스에 있으며, 다른 관리자로부터 해당 사용자에 대한 권한을 수정하고store.dispatch('ME');
메타 평가를 하기 전에 디스패치를 호출하면 제대로 도착한다고 생각했던 새로운 허락을 얻는다.next({'403'});
나는 네가 나를 이해해주길 바라, 그렇지 않다면, 주저하지 말고 의견을 말해.
상점에 권한을 두지 마십시오.나나 나 같은 교활한 사람은 내가 원할 때마다 당신의 지원서에 대한 모든 권한을 넣을 수 있다.대신, 모든 경로가 변경되기 전에 API로 쿼리하십시오.
router.beforeEach(async (to, from, next) => {
try {
await api.get('permissions', { params: permissions: to.matched.some((record) => record.meta.permission_name }})
next()
} catch (e) {
next({ name: '403 })
}
})
서버 쪽만 처리하면 돼
반응형
'programing' 카테고리의 다른 글
f-string을 사용한 소수점 이후의 고정 자리수 (0) | 2022.04.02 |
---|---|
에픽에서 동일한 통화를 두 번 시작하는 것을 방지하는 방법 (0) | 2022.04.02 |
Python 함수 정의에서 ->는 무엇을 의미하는가? (0) | 2022.04.02 |
Vuejs v-select에서 개체의 속성에 액세스하는 방법 (0) | 2022.04.02 |
기본 작업 대응:app:validateSigningDebug 실패 (0) | 2022.04.02 |