diff --git a/client/package-lock.json b/client/package-lock.json index 871fb89..42d1b84 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8022,6 +8022,11 @@ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==" }, + "js-cookies": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/js-cookies/-/js-cookies-1.0.4.tgz", + "integrity": "sha1-1G5XbEIP9tVULA9SttTvfWN+dU4=" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/client/package.json b/client/package.json index e4259f7..eaa8e46 100644 --- a/client/package.json +++ b/client/package.json @@ -12,6 +12,7 @@ "form-data": "^3.0.0", "history": "^4.10.1", "husky": "^4.2.5", + "js-cookies": "^1.0.4", "lint-staged": "^10.2.6", "lodash": "^4.17.15", "node-sass": "^4.14.1", diff --git a/client/src/pages/Search/index.jsx b/client/src/pages/Search/index.jsx index e12bb41..1c3db94 100644 --- a/client/src/pages/Search/index.jsx +++ b/client/src/pages/Search/index.jsx @@ -17,9 +17,11 @@ import { useAuth0 } from "../../react-auth0-spa"; import * as OrgService from "../../services/user-org"; import api from "../../services/api"; +import Cookies from "js-cookie"; + export default function SearchPage() { const apiClient = api(); - const { isLoading, isAuthenticated, user: auth0User } = useAuth0(); + const { isLoading, isAuthenticated, user: auth0User, loginWithRedirect } = useAuth0(); const [tab, setTab] = React.useState(TABS.SEARCH); const [keyword, setKeyword] = React.useState(null); const [selectedOrg, setSelectedOrg] = React.useState(null); @@ -62,9 +64,16 @@ export default function SearchPage() { }, [keyword]); const onSelectOrg = (org) => { - OrgService.setSingleOrg(org); - setSelectedOrg(org); - setShouldSelectOrg(false); + const cookie = Cookies.get('auth0.is.authenticated'); + if (cookie && cookie === 'true') { + OrgService.setSingleOrg(org); + setSelectedOrg(org); + setShouldSelectOrg(false); + } else { + loginWithRedirect({ + redirect_uri: window.location.origin, + }); + } }; let mainContent; diff --git a/client/src/services/api.js b/client/src/services/api.js index 2c5170f..20e7335 100644 --- a/client/src/services/api.js +++ b/client/src/services/api.js @@ -7,6 +7,8 @@ import axios from "axios"; import { useAuth0 } from "../react-auth0-spa"; +import Cookies from "js-cookie"; + export default () => { const { getTokenSilently, loginWithRedirect } = useAuth0(); const api = useRef( @@ -17,6 +19,15 @@ export default () => { }) ); useEffect(() => { + const cookie = Cookies.get('auth0.is.authenticated'); + if (cookie && cookie === 'true') { + // Do nothing + } else { + loginWithRedirect({ + redirect_uri: window.location.origin, + }); + return; + } const currentAPI = api.current; currentAPI.interceptors.request.use(async (config) => { let token;