Merge pull request #1837 from automatisch/logout-endpoint-web-implementation

feat: implement revoke access token with RQ
This commit is contained in:
Ali BARIN
2024-04-26 14:20:49 +02:00
committed by GitHub
2 changed files with 23 additions and 0 deletions

View File

@@ -4,22 +4,30 @@ import PropTypes from 'prop-types';
import MenuItem from '@mui/material/MenuItem';
import Menu from '@mui/material/Menu';
import { Link } from 'react-router-dom';
import Can from 'components/Can';
import apolloClient from 'graphql/client';
import * as URLS from 'config/urls';
import useAuthentication from 'hooks/useAuthentication';
import useFormatMessage from 'hooks/useFormatMessage';
import useRevokeAccessToken from 'hooks/useRevokeAccessToken';
function AccountDropdownMenu(props) {
const formatMessage = useFormatMessage();
const authentication = useAuthentication();
const token = authentication.token;
const navigate = useNavigate();
const revokeAccessTokenMutation = useRevokeAccessToken(token);
const { open, onClose, anchorEl, id } = props;
const logout = async () => {
await revokeAccessTokenMutation.mutateAsync();
authentication.removeToken();
await apolloClient.clearStore();
onClose();
navigate(URLS.LOGIN);
};
return (
<Menu
anchorEl={anchorEl}

View File

@@ -0,0 +1,15 @@
import { useMutation } from '@tanstack/react-query';
import api from 'helpers/api';
export default function useRevokeAccessToken(token) {
const query = useMutation({
mutationFn: async () => {
const { data } = await api.delete(`/v1/access-tokens/${token}`);
return data;
},
});
return query;
}