diff --git a/kfone-website/.env.example b/kfone-website/.env.example index bc302b3..5feaf40 100644 --- a/kfone-website/.env.example +++ b/kfone-website/.env.example @@ -10,3 +10,4 @@ REACT_APP_BASE_API_ENDPOINT= REACT_APP_CHOREO_ORGANIZATION= REACT_APP_CHOREO_AUTH_TOKEN= REACT_APP_MY_ACCOUNT_URL= +REACT_APP_SIGN_UP_URL=&sp='> diff --git a/kfone-website/src/config.js b/kfone-website/src/config.js index eff7853..51e7246 100644 --- a/kfone-website/src/config.js +++ b/kfone-website/src/config.js @@ -23,6 +23,12 @@ const appConfig = { signInRedirectURL: process.env.REACT_APP_ASGARDEO_LOGIN_CALLBACK_URL ?? '', signOutRedirectURL: process.env.REACT_APP_ASGARDEO_LOGOUT_CALLBACK_URL ?? '', scope: ['openid', 'profile', 'email'], + signUpUrl: process.env.REACT_APP_SIGN_UP_URL + ? process.env.REACT_APP_SIGN_UP_URL.replace( + '{{clientId}}', + process.env.REACT_APP_ASGARDEO_CLIENT_ID ?? '' + ) + : '', stsConfig: { client_id: process.env.REACT_APP_CHOREO_CLIENT_ID ?? '', orgHandle: process.env.REACT_APP_CHOREO_ORGANIZATION ?? '', diff --git a/kfone-website/src/layouts/Navbar.jsx b/kfone-website/src/layouts/Navbar.jsx index 8f80e8b..b74c216 100644 --- a/kfone-website/src/layouts/Navbar.jsx +++ b/kfone-website/src/layouts/Navbar.jsx @@ -22,6 +22,7 @@ import { HiMenuAlt3 } from 'react-icons/hi'; import { GiCrossedAirFlows } from 'react-icons/gi'; import { GrClose } from 'react-icons/gr'; import RoundedIconButton from '../components/buttons/RoundedIconButton'; +import appConfig from '../config'; const Navbar = (props) => { const { handleLogin, state } = props; @@ -56,6 +57,11 @@ const Navbar = (props) => {
    + {!state?.isAuthenticated && ( +
  • + Sign Up +
  • + )}
  • { const { state, signIn, getDecodedIDPIDToken, trySignInSilently } = useAuthContext(); @@ -33,6 +34,8 @@ const HomePage = () => { const reRenderCheckRef = useRef(false); const history = useHistory(); + const [showAutoLoginLoader, setShowAutoLoginLoader] = useState(false); + useEffect(() => { reRenderCheckRef.current = true; @@ -50,6 +53,19 @@ const HomePage = () => { })(); }, []); + /** + * This is a workaround to trigger a login request when users come + * from the Sign Up path with auto login enabled. + */ + useEffect(() => { + const shouldAutoLogin = query.get('autologin'); + + if (shouldAutoLogin) { + setShowAutoLoginLoader(true); + signIn(); + } + }, [query]); + const handleLogin = () => { if (state?.isAuthenticated) { history.push('/my-kfone'); @@ -67,6 +83,10 @@ const HomePage = () => { }); }; + if (showAutoLoginLoader) { + return ; + } + return (