fix(pda): revoke expired sessions before completing logout
This commit is contained in:
@@ -5,6 +5,9 @@ import { decodeAccessToken } from '@/utils/jwt-claims.js'
|
||||
|
||||
export { decodeAccessToken } from '@/utils/jwt-claims.js'
|
||||
|
||||
let sessionRevision = 0
|
||||
export function getSessionRevision() { return sessionRevision }
|
||||
|
||||
const SESSION_KEY = 'pda-auth-session'
|
||||
const LOGIN_PREFERENCE_KEY = 'pda-login-account-preference'
|
||||
|
||||
@@ -53,6 +56,7 @@ function persistSession() {
|
||||
}
|
||||
|
||||
export function signIn(account, warehouse, options = {}) {
|
||||
sessionRevision++
|
||||
session.currentUser = { id: String(account.id), name: account.name, role: account.role, roles: account.roles || [], warehouse, warehouseId: account.warehouseId || null, domesticWarehouseId: account.domesticWarehouseId || null, warehouseBound: Boolean(account.domesticWarehouseId) }
|
||||
session.token = options.token || account.token || ''
|
||||
session.refreshToken = options.refreshToken || account.refreshToken || ''
|
||||
@@ -144,6 +148,7 @@ export function restoreSession() {
|
||||
tenantId: claims.tenant_id == null ? (saved.tenantId || '') : String(claims.tenant_id),
|
||||
apiBase: saved.apiBase || PLATFORM_API_ROOT
|
||||
})
|
||||
sessionRevision++
|
||||
persistSession()
|
||||
return true
|
||||
} catch (_) {
|
||||
@@ -153,6 +158,7 @@ export function restoreSession() {
|
||||
}
|
||||
|
||||
export function signOut() {
|
||||
sessionRevision++
|
||||
session.currentUser = null
|
||||
session.token = ''
|
||||
session.refreshToken = ''
|
||||
|
||||
Reference in New Issue
Block a user