Compare commits

..

2 Commits

Author SHA1 Message Date
EgleH
aba8b2be3a logout with one click (#223)
Co-authored-by: eglehelms <e.helms@cognigy.com>
2023-03-30 07:44:19 -04:00
EgleH
f4d7880ab7 Add Logout call to signout (#221)
* Add Logout call to signout

* clean local storage even on error

---------

Co-authored-by: eglehelms <e.helms@cognigy.com>
2023-03-29 08:54:17 -04:00
3 changed files with 28 additions and 5 deletions

View File

@@ -189,6 +189,7 @@ export const CRED_NOT_TESTED = "not tested";
/** API base paths */
export const API_LOGIN = `${API_BASE_URL}/login`;
export const API_LOGOUT = `${API_BASE_URL}/logout`;
export const API_SBCS = `${API_BASE_URL}/Sbcs`;
export const API_USERS = `${API_BASE_URL}/Users`;
export const API_API_KEYS = `${API_BASE_URL}/ApiKeys`;

View File

@@ -18,6 +18,7 @@ import {
API_SIP_GATEWAY,
API_PASSWORD_SETTINGS,
USER_ACCOUNT,
API_LOGOUT,
} from "./constants";
import { ROUTE_LOGIN } from "src/router/routes";
import {
@@ -233,6 +234,10 @@ export const postLogin = (payload: UserLoginPayload) => {
});
};
export const postLogout = () => {
return postFetch<undefined>(API_LOGOUT);
};
/** Named wrappers for `postFetch` */
export const postServiceProviders = (payload: Partial<ServiceProvider>) => {

View File

@@ -4,13 +4,13 @@
import React, { useContext } from "react";
import { useNavigate } from "react-router-dom";
import { postLogin } from "src/api";
import { postLogin, postLogout } from "src/api";
import { StatusCodes } from "src/api/types";
import {
ROUTE_LOGIN,
ROUTE_CREATE_PASSWORD,
ROUTE_INTERNAL_ACCOUNTS,
ROUTE_INTERNAL_APPLICATIONS,
ROUTE_LOGIN,
} from "./routes";
import {
SESS_OLD_PASSWORD,
@@ -136,10 +136,27 @@ export const useProvideAuth = (): AuthStateContext => {
};
const signout = () => {
localStorage.clear();
sessionStorage.clear();
sessionStorage.setItem(SESS_FLASH_MSG, MSG_LOGGED_OUT);
window.location.href = ROUTE_LOGIN;
return new Promise((resolve, reject) => {
postLogout()
.then((response) => {
if (response.status === StatusCodes.OK) {
localStorage.clear();
sessionStorage.clear();
sessionStorage.setItem(SESS_FLASH_MSG, MSG_LOGGED_OUT);
resolve(response.json);
}
})
.catch((error) => {
localStorage.clear();
sessionStorage.clear();
sessionStorage.setItem(SESS_FLASH_MSG, MSG_LOGGED_OUT);
if (error) {
reject(error);
}
reject(MSG_SOMETHING_WRONG);
});
});
};
return {