3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00

Detect expired dashboard logins and redirect to the splash page

This commit is contained in:
Dragory 2021-05-22 21:33:34 +03:00
parent f3a90faaa7
commit 8f5a9e607a
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
4 changed files with 12 additions and 1 deletions

View file

@ -167,7 +167,7 @@ export function apiTokenAuthHandlers() {
return [
passport.authenticate("api-token", { failWithError: true }),
(err, req: Request, res: Response, next) => {
return res.json({ error: err.message });
return res.status(401).json({ error: err.message });
},
];
}

View file

@ -30,6 +30,11 @@ function buildQueryString(params: QueryParamObject) {
export function request(resource, fetchOpts: RequestInit = {}) {
return fetch(`${apiUrl}/${resource}`, fetchOpts).then(async res => {
if (!res.ok) {
if (res.status === 401) {
RootStore.dispatch("auth/expiredLogin");
return;
}
const body = await res.json();
throw new ApiError(res.statusText, body, res.status, res);
}

View file

@ -22,6 +22,7 @@ if (window.location.pathname !== "/") {
const errorMessages = {
noAccess: "No dashboard access. If you think this is a mistake, please contact your server owner.",
expiredLogin: "Dashboard login expired. Please log in again.",
};
const errorMessageElem = document.createElement("div");

View file

@ -71,6 +71,11 @@ export const AuthStore: Module<AuthState, RootState> = {
await post("auth/logout");
await dispatch("clearApiKey");
},
async expiredLogin({ dispatch }) {
await dispatch("clearApiKey");
window.location.assign("/?error=expiredLogin");
},
},
mutations: {