feat(security): enforce admin allowlist guard on admin APIs and attach bearer for admin client
This commit is contained in:
@@ -31,6 +31,10 @@ userHttp.interceptors.response.use(
|
|||||||
export const adminHttp = axios.create({ baseURL: BASE_URL })
|
export const adminHttp = axios.create({ baseURL: BASE_URL })
|
||||||
|
|
||||||
adminHttp.interceptors.request.use(config => {
|
adminHttp.interceptors.request.use(config => {
|
||||||
|
const token = localStorage.getItem('access_token')
|
||||||
|
if (token) {
|
||||||
|
config.headers['Authorization'] = `Bearer ${token}`
|
||||||
|
}
|
||||||
const clientKey = sessionStorage.getItem('admin_client_key') || ENV_ADMIN_CLIENT_KEY
|
const clientKey = sessionStorage.getItem('admin_client_key') || ENV_ADMIN_CLIENT_KEY
|
||||||
const apiKey = sessionStorage.getItem('admin_api_key') || ENV_ADMIN_API_KEY
|
const apiKey = sessionStorage.getItem('admin_api_key') || ENV_ADMIN_API_KEY
|
||||||
if (clientKey && !sessionStorage.getItem('admin_client_key')) {
|
if (clientKey && !sessionStorage.getItem('admin_client_key')) {
|
||||||
@@ -43,3 +47,14 @@ adminHttp.interceptors.request.use(config => {
|
|||||||
if (apiKey) config.headers['X-API-Key'] = apiKey
|
if (apiKey) config.headers['X-API-Key'] = apiKey
|
||||||
return config
|
return config
|
||||||
})
|
})
|
||||||
|
|
||||||
|
adminHttp.interceptors.response.use(
|
||||||
|
res => res,
|
||||||
|
err => {
|
||||||
|
if (err.response?.status === 401) {
|
||||||
|
localStorage.removeItem('access_token')
|
||||||
|
router.push('/login')
|
||||||
|
}
|
||||||
|
return Promise.reject(err)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user