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 1/2] 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; +} From 18ffbb7317715d078639c2d10a1bc67d80863f56 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Fri, 26 Apr 2024 09:27:41 +0000 Subject: [PATCH 2/2] fix(AccountDropdownMenu): await token revocation request --- packages/web/src/components/AccountDropdownMenu/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/components/AccountDropdownMenu/index.jsx b/packages/web/src/components/AccountDropdownMenu/index.jsx index 31bfa986..e4889c89 100644 --- a/packages/web/src/components/AccountDropdownMenu/index.jsx +++ b/packages/web/src/components/AccountDropdownMenu/index.jsx @@ -20,7 +20,7 @@ function AccountDropdownMenu(props) { const { open, onClose, anchorEl, id } = props; const logout = async () => { - revokeAccessTokenMutation.mutate(); + await revokeAccessTokenMutation.mutateAsync(); authentication.removeToken(); await apolloClient.clearStore();