From 363874de6aae36cb00d423fb134902add376a1de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Thu, 25 Apr 2024 14:17:18 +0200 Subject: [PATCH] feat: implement revoke access token with RQ --- .../src/components/AccountDropdownMenu/index.jsx | 8 ++++++++ packages/web/src/hooks/useRevokeAccessToken.js | 15 +++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 packages/web/src/hooks/useRevokeAccessToken.js diff --git a/packages/web/src/components/AccountDropdownMenu/index.jsx b/packages/web/src/components/AccountDropdownMenu/index.jsx index 74ad3e74..31bfa986 100644 --- a/packages/web/src/components/AccountDropdownMenu/index.jsx +++ b/packages/web/src/components/AccountDropdownMenu/index.jsx @@ -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 () => { + revokeAccessTokenMutation.mutate(); + authentication.removeToken(); await apolloClient.clearStore(); onClose(); navigate(URLS.LOGIN); }; + return ( { + const { data } = await api.delete(`/v1/access-tokens/${token}`); + + return data; + }, + }); + + return query; +}