feat(api): implement token auto-refresh mechanism and enhance token management
Some checks failed
Frontend CI / ota-android (push) Successful in 10m55s
Frontend CI / build-and-push-web (push) Failing after 13m25s
Frontend CI / build-android-apk (push) Successful in 56m26s

- Add support for proactive token refresh when nearing expiration to improve user experience.
- Introduce a refresh lock to prevent concurrent token refresh requests.
- Update token handling in API client to ensure valid tokens are used for requests.
- Modify authService to handle refresh token requests with improved error handling and response management.
This commit is contained in:
lafay
2026-03-23 00:34:26 +08:00
parent cee120a6f8
commit 88510aa6ae
2 changed files with 114 additions and 8 deletions

View File

@@ -237,7 +237,14 @@ class AuthService {
// 刷新Token
async refreshToken(): Promise<RefreshTokenResponse | null> {
try {
const response = await api.post<RefreshTokenResponse>('/auth/refresh');
const refreshToken = await api.getRefreshToken();
if (!refreshToken) {
return null;
}
const response = await api.post<RefreshTokenResponse>('/auth/refresh', {
refresh_token: refreshToken,
});
if (!response.data) {
return null;
@@ -245,8 +252,9 @@ class AuthService {
if (response.data.token) {
await api.setToken(response.data.token);
}
if (response.data.refreshToken) {
await api.setRefreshToken(response.data.refreshToken);
const newRefreshToken = response.data.refresh_token || response.data.refreshToken;
if (newRefreshToken) {
await api.setRefreshToken(newRefreshToken);
}
return response.data;