mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 04:55:44 +00:00
re-implement logoff
This commit is contained in:
@ -26,7 +26,7 @@ export enum ApiEndpoints {
|
|||||||
user_email_primary = 'auth/emails/:id/primary/',
|
user_email_primary = 'auth/emails/:id/primary/',
|
||||||
user_login = '_allauth/app/v1/auth/login',
|
user_login = '_allauth/app/v1/auth/login',
|
||||||
user_login_mfa = '_allauth/app/v1/auth/2fa/authenticate',
|
user_login_mfa = '_allauth/app/v1/auth/2fa/authenticate',
|
||||||
user_logout = 'auth/logout/',
|
user_logout = '_allauth/app/v1/auth/session',
|
||||||
user_register = 'auth/registration/',
|
user_register = 'auth/registration/',
|
||||||
|
|
||||||
// Generic API endpoints
|
// Generic API endpoints
|
||||||
|
@ -91,6 +91,7 @@ export const doBasicLogin = async (
|
|||||||
)
|
)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
if (response.status == 200 && response.data?.meta?.is_authenticated) {
|
if (response.status == 200 && response.data?.meta?.is_authenticated) {
|
||||||
|
setSession(response.data.meta.session_token);
|
||||||
setToken(response.data.meta.access_token);
|
setToken(response.data.meta.access_token);
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
@ -121,11 +122,16 @@ export const doBasicLogin = async (
|
|||||||
* @arg deleteToken: If true, delete the token from the server
|
* @arg deleteToken: If true, delete the token from the server
|
||||||
*/
|
*/
|
||||||
export const doLogout = async (navigate: NavigateFunction) => {
|
export const doLogout = async (navigate: NavigateFunction) => {
|
||||||
const { clearUserState, isLoggedIn } = useUserState.getState();
|
const { clearUserState, isLoggedIn, setSession } = useUserState.getState();
|
||||||
|
const { session } = useUserState.getState();
|
||||||
|
|
||||||
// Logout from the server session
|
// Logout from the server session
|
||||||
if (isLoggedIn() || !!getCsrfCookie()) {
|
if (isLoggedIn() || !!getCsrfCookie()) {
|
||||||
await api.post(apiUrl(ApiEndpoints.user_logout)).catch(() => {});
|
await api
|
||||||
|
.delete(apiUrl(ApiEndpoints.user_logout), {
|
||||||
|
headers: { 'X-Session-Token': session }
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
|
||||||
showLoginNotification({
|
showLoginNotification({
|
||||||
title: t`Logged Out`,
|
title: t`Logged Out`,
|
||||||
@ -133,6 +139,7 @@ export const doLogout = async (navigate: NavigateFunction) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSession(undefined);
|
||||||
clearUserState();
|
clearUserState();
|
||||||
clearCsrfCookie();
|
clearCsrfCookie();
|
||||||
navigate('/login');
|
navigate('/login');
|
||||||
|
Reference in New Issue
Block a user