Skip to content

Commit c626a14

Browse files
antonioribeiroifox
authored andcommitted
Add an axios global error handler to warn on session expired
Compile assets Also handle 419 errors Compile assets Closes #966
1 parent ed6164d commit c626a14

File tree

8 files changed

+22
-9
lines changed

8 files changed

+22
-9
lines changed

dist/assets/admin/js/chunk-common.f623f8e0.js renamed to dist/assets/admin/js/chunk-common.45dd7aca.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assets/admin/twill-manifest.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@
1212
"Inter-Regular.woff": "/assets/admin/fonts/Inter-Regular.aebfbb3c.woff",
1313
"Inter-Regular.woff2": "/assets/admin/fonts/Inter-Regular.bffaed79.woff2",
1414
"chunk-common.css": "/assets/admin/css/chunk-common.40f7224b.css",
15-
"chunk-common.js": "/assets/admin/js/chunk-common.f623f8e0.js",
15+
"chunk-common.js": "/assets/admin/js/chunk-common.45dd7aca.js",
1616
"chunk-vendors.css": "/assets/admin/css/chunk-vendors.e0f3ef32.css",
1717
"chunk-vendors.js": "/assets/admin/js/chunk-vendors.750de529.js",
1818
"icons-files.php": "/views/partials/icons/icons-files-svg.blade.php",
1919
"icons-wysiwyg.php": "/views/partials/icons/icons-wysiwyg-svg.blade.php",
2020
"icons.php": "/views/partials/icons/icons-svg.blade.php",
2121
"main-buckets.css": "/assets/admin/css/main-buckets.b3760912.css",
22-
"main-buckets.js": "/assets/admin/js/main-buckets.6cc7c1aa.js",
22+
"main-buckets.js": "/assets/admin/js/main-buckets.5590f8ca.js",
2323
"main-dashboard.css": "/assets/admin/css/main-dashboard.7e178125.css",
24-
"main-dashboard.js": "/assets/admin/js/main-dashboard.a2913c13.js",
24+
"main-dashboard.js": "/assets/admin/js/main-dashboard.fc57884f.js",
2525
"main-form.css": "/assets/admin/css/main-form.34549069.css",
26-
"main-form.js": "/assets/admin/js/main-form.89cd1411.js",
26+
"main-form.js": "/assets/admin/js/main-form.3d12537f.js",
2727
"main-free.js": "/assets/admin/js/main-free.75070804.js",
2828
"main-listing.css": "/assets/admin/css/main-listing.32e2c205.css",
29-
"main-listing.js": "/assets/admin/js/main-listing.5407bbfd.js"
29+
"main-listing.js": "/assets/admin/js/main-listing.609e7b17.js"
3030
}

frontend/js/plugins/A17Config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ import a17DatePicker from '@/components/DatePicker.vue'
3434
// Media Library
3535
import a17MediaLibrary from '@/components/media-library/MediaLibrary.vue'
3636

37+
// Error handler
38+
import { globalError } from '@/utils/errors'
39+
3740
// Plugins
3841
import VueTimeago from 'vue-timeago'
3942
import get from 'lodash/get'
@@ -113,6 +116,12 @@ const A17Config = {
113116

114117
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
115118

119+
axios.interceptors.response.use((response) => response, (error) => {
120+
globalError('CONTENT', error)
121+
122+
return Promise.reject(error)
123+
})
124+
116125
// Plugins
117126
Vue.use(VueTimeago, {
118127
name: 'timeago', // component name

frontend/js/utils/errors.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ export function globalError (component = null, error = { message: '', value: nul
77

88
const errorMessage = prefix + error.message
99

10+
const statusCode = error?.value?.response?.status ?? error?.response?.status ?? null
11+
1012
console.error(errorMessage)
1113

12-
if (error.value && error.value.response) {
13-
console.error(error.value.response.data)
14+
if (error?.value && error.value?.response) {
15+
console.error(error.value.response?.data)
1416
}
1517

16-
if ('response' in error.value && 'status' in error.value.response && error.value.response.status === 401) {
18+
// Error 401 = session expired / not authenticated
19+
// Error 419 = CSRF token mismatched
20+
if (statusCode === 401 || statusCode === 419) {
1721
window[process.env.VUE_APP_NAME].vm.notif({
1822
message: 'Your session has expired, please <a href="' + document.location + '" target="_blank">login in another tab</a>. You can then continue working here.',
1923
variant: 'warning'

0 commit comments

Comments
 (0)