fix: branding, 401 logout, and blocked-user message on register page
- Copyright.vue / AuthCopyright.vue: change link from mugweb.ir to madresebanoo.ir - SelectField.vue: add min-width:0 to prevent flex overflow in narrow layouts - useRedirectAfterLogin: check roles array (multi-role support) instead of single role - StudentRegisterPage: show block reason when user's status is blocked - http.js: only clear session on 401 if a token already existed (login form 401 should not trigger logout); clear via authStore so WordPress cookie is also cleaned up Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -61,12 +61,25 @@ const addCamelizeInterceptor = (instance) => {
|
||||
)
|
||||
}
|
||||
|
||||
const _addUnauthorizeInterceptor = (instance) => {
|
||||
const addUnauthorizeInterceptor = (instance) => {
|
||||
instance.interceptors.response.use(
|
||||
(res) => res,
|
||||
async (e) => {
|
||||
if (e?.response?.status === 401) {
|
||||
tokenService.clearAll()
|
||||
// Login/OTP-verify endpoints also answer 401 for a plain wrong
|
||||
// password or code — that's a credential failure the login form
|
||||
// should handle itself, not a session expiring. Only treat this as
|
||||
// "the session died" when we actually had a token going in.
|
||||
if (e?.response?.status === 401 && tokenService.hasToken()) {
|
||||
// Route through the auth store, not tokenService directly, so the
|
||||
// reactive user state and the WordPress-facing mb_auth_status cookie
|
||||
// both get cleared along with the token — an expired/invalid session
|
||||
// must not leave WordPress showing a stale "logged in" state.
|
||||
try {
|
||||
const { useAuthStore } = await import('@/store/auth')
|
||||
useAuthStore().clearUser()
|
||||
} catch {
|
||||
tokenService.clearAll()
|
||||
}
|
||||
toast('نشست شما تایید نشد، لطفا مجدد وارد شوید')
|
||||
try {
|
||||
const { default: router } = await import('@/router')
|
||||
@@ -89,7 +102,7 @@ const createInstance = (baseUrl, { headers = {}, ...configs } = {}) => {
|
||||
addResponseUnwrapInterceptor(instance)
|
||||
addCamelizeInterceptor(instance)
|
||||
addSnakizeInterceptor(instance)
|
||||
// _addUnauthorizeInterceptor(instance)
|
||||
addUnauthorizeInterceptor(instance)
|
||||
return instance
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user