'use client' import cn from 'classnames' import { useRouter, useSearchParams } from 'next/navigation' import type { FC } from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import Toast from '@/app/components/base/toast' import { getUserOIDCSSOUrl, getUserSAMLSSOUrl } from '@/service/sso' import Button from '@/app/components/base/button' type UserSSOFormProps = { protocol: string } const UserSSOForm: FC = ({ protocol, }) => { const searchParams = useSearchParams() const consoleToken = searchParams.get('console_token') const message = searchParams.get('message') const router = useRouter() const { t } = useTranslation() const [isLoading, setIsLoading] = useState(false) useEffect(() => { if (consoleToken) { localStorage.setItem('console_token', consoleToken) router.replace('/apps') } if (message) { Toast.notify({ type: 'error', message, }) } }, []) const handleSSOLogin = () => { setIsLoading(true) if (protocol === 'saml') { getUserSAMLSSOUrl().then((res) => { router.push(res.url) }).finally(() => { setIsLoading(false) }) } else { getUserOIDCSSOUrl().then((res) => { document.cookie = `user-oidc-state=${res.state}` router.push(res.url) }).finally(() => { setIsLoading(false) }) } } return (

{t('login.pageTitle')}

) } export default UserSSOForm