Spaces:
Running
Running
AuthorBot commited on
Commit ·
ba2f394
1
Parent(s): 0c80c73
Fix: session persistence on refresh - don't clear tokens on network/server errors
Browse files- static/auth-client.js +15 -11
static/auth-client.js
CHANGED
|
@@ -126,23 +126,27 @@
|
|
| 126 |
return this.ensureValidAccessToken()
|
| 127 |
.then(function (ok) {
|
| 128 |
if (!ok) {
|
|
|
|
| 129 |
self.clearSession();
|
| 130 |
return false;
|
| 131 |
}
|
| 132 |
return loadProfile();
|
| 133 |
})
|
| 134 |
-
.
|
| 135 |
-
return
|
| 136 |
-
if (!refreshed) {
|
| 137 |
-
self.clearSession();
|
| 138 |
-
return false;
|
| 139 |
-
}
|
| 140 |
-
return loadProfile();
|
| 141 |
-
});
|
| 142 |
})
|
| 143 |
-
.catch(function () {
|
| 144 |
-
|
| 145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 146 |
});
|
| 147 |
};
|
| 148 |
|
|
|
|
| 126 |
return this.ensureValidAccessToken()
|
| 127 |
.then(function (ok) {
|
| 128 |
if (!ok) {
|
| 129 |
+
// Token refresh failed explicitly — clear session
|
| 130 |
self.clearSession();
|
| 131 |
return false;
|
| 132 |
}
|
| 133 |
return loadProfile();
|
| 134 |
})
|
| 135 |
+
.then(function (result) {
|
| 136 |
+
return result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 137 |
})
|
| 138 |
+
.catch(function (err) {
|
| 139 |
+
// Network error / server down — DON'T clear session.
|
| 140 |
+
// Keep tokens so user can retry after server comes back.
|
| 141 |
+
var msg = (err && err.message) || '';
|
| 142 |
+
if (msg.indexOf('Session expired') !== -1 || msg.indexOf('401') !== -1) {
|
| 143 |
+
// Explicit auth failure — clear session
|
| 144 |
+
self.clearSession();
|
| 145 |
+
return false;
|
| 146 |
+
}
|
| 147 |
+
// Transient error (502, network, timeout) — keep session, show dashboard anyway
|
| 148 |
+
console.warn('restoreSession: transient error, keeping session:', msg);
|
| 149 |
+
return true;
|
| 150 |
});
|
| 151 |
};
|
| 152 |
|