Fix OAuth refresh through tunnel proxy

This commit is contained in:
fawney19
2026-04-28 19:45:34 +08:00
parent 9194f78e56
commit 3d20c05ef7
7 changed files with 185 additions and 18 deletions

View File

@@ -30,4 +30,18 @@ describe('errorParser', () => {
'Token 刷新失败refresh_token 已被使用并轮换,请重新登录授权',
)
})
it('normalizes expired refresh token errors', () => {
const error = {
response: {
data: {
detail: '{"error":{"message":"Could not validate your refresh token. Please try signing in again.","type":"invalid_request_error","code":"refresh_token_expired"}}',
},
},
}
expect(parseApiError(error, 'Token 刷新失败')).toBe(
'Token 刷新失败refresh_token 无效、已过期或已撤销,请重新登录授权',
)
})
})

View File

@@ -145,6 +145,13 @@ function normalizeKnownApiErrorMessage(message: string): string {
return 'Token 刷新失败refresh_token 已被使用并轮换,请重新登录授权'
}
if (
lowered.includes('refresh_token_expired')
|| lowered.includes('could not validate your refresh token')
) {
return 'Token 刷新失败refresh_token 无效、已过期或已撤销,请重新登录授权'
}
if (
lowered.includes('token refresh 失败:')
|| lowered.includes('token refresh failed:')