diff --git a/src/app/sso/SSOPage.tsx b/src/app/sso/SSOPage.tsx
new file mode 100644
index 00000000..e577767a
--- /dev/null
+++ b/src/app/sso/SSOPage.tsx
@@ -0,0 +1,22 @@
+'use client';
+import { useEffect } from 'react';
+import { Loading } from 'react-basics';
+import { useRouter, useSearchParams } from 'next/navigation';
+import { setClientAuthToken } from 'lib/client';
+
+export default function SSOPage() {
+ const router = useRouter();
+ const search = useSearchParams();
+ const url = search.get('url');
+ const token = search.get('token');
+
+ useEffect(() => {
+ if (url && token) {
+ setClientAuthToken(token);
+
+ router.push(url);
+ }
+ }, [router, url, token]);
+
+ return ;
+}
diff --git a/src/app/sso/page.tsx b/src/app/sso/page.tsx
index e577767a..dd032142 100644
--- a/src/app/sso/page.tsx
+++ b/src/app/sso/page.tsx
@@ -1,22 +1,5 @@
-'use client';
-import { useEffect } from 'react';
-import { Loading } from 'react-basics';
-import { useRouter, useSearchParams } from 'next/navigation';
-import { setClientAuthToken } from 'lib/client';
+import SSOPage from './SSOPage';
-export default function SSOPage() {
- const router = useRouter();
- const search = useSearchParams();
- const url = search.get('url');
- const token = search.get('token');
-
- useEffect(() => {
- if (url && token) {
- setClientAuthToken(token);
-
- router.push(url);
- }
- }, [router, url, token]);
-
- return ;
+export default function () {
+ return ;
}