优化
This commit is contained in:
@@ -137,7 +137,14 @@ export function signInWithTokens(tokens) {
|
||||
export function replaceTokens(tokens) {
|
||||
if (!tokens?.accessToken) throw new Error('刷新响应缺少访问令牌')
|
||||
const pair = validatePdaToken(tokens.accessToken, tokens)
|
||||
if (session.currentUser && (String(session.currentUser.id) !== claimId(pair.claims, 'user_id') || String(session.currentUser.warehouseId) !== pair.warehouseId)) throw new Error('作业主体或绑定仓库已变更,请重新登录')
|
||||
if (session.currentUser) {
|
||||
const previousClaims = decodeAccessToken(session.token)
|
||||
const identityChanged = ['user_id', 'membership_id', 'tenant_id', 'app_code', 'overseas_warehouse_id']
|
||||
.some((name) => claimId(previousClaims, name) !== claimId(pair.claims, name))
|
||||
if (identityChanged || String(session.currentUser.id) !== claimId(pair.claims, 'user_id') || String(session.currentUser.warehouseId) !== pair.warehouseId) {
|
||||
throw new Error('作业主体或绑定仓库已变更,请重新登录')
|
||||
}
|
||||
}
|
||||
const user = userFromClaims(pair, session.currentUser)
|
||||
const nextRefreshToken = tokens.refreshToken || session.refreshToken
|
||||
// Validate the complete replacement before mutating reactive or persisted session state.
|
||||
|
||||
Reference in New Issue
Block a user