umami/pages/sso.js

32 lines
695 B
JavaScript
Raw Normal View History

2022-10-31 19:02:37 +01:00
import { useEffect } from 'react';
2023-01-31 06:44:07 +01:00
import { Loading } from 'react-basics';
2022-10-31 19:02:37 +01:00
import { useRouter } from 'next/router';
import { setClientAuthToken } from 'lib/client';
2023-04-05 08:29:54 +02:00
import useApi from '../hooks/useApi';
2022-10-31 19:02:37 +01:00
export default function SingleSignOnPage() {
2023-04-05 08:29:54 +02:00
const { post } = useApi();
2022-10-31 19:02:37 +01:00
const router = useRouter();
const { token, url } = router.query;
useEffect(() => {
2023-04-05 08:29:54 +02:00
const signOn = async token => {
setClientAuthToken(token);
const data = await post('/auth/sso');
setClientAuthToken(data.token);
await router.push(url);
};
if (url && token) {
setClientAuthToken(token);
2022-10-31 19:02:37 +01:00
2023-04-05 08:29:54 +02:00
signOn();
2022-10-31 19:02:37 +01:00
}
2023-04-05 08:29:54 +02:00
}, [url, token]);
2022-10-31 19:02:37 +01:00
2023-01-31 06:44:07 +01:00
return <Loading size="xl" />;
2022-10-31 19:02:37 +01:00
}