👽 Support other auth factors
🐛 Fix redirect url did not work
			
			
This commit is contained in:
		| @@ -8,6 +8,8 @@ import { useState } from 'react' | ||||
| import ErrorIcon from '@mui/icons-material/Error' | ||||
| import PasswordIcon from '@mui/icons-material/Password' | ||||
| import EmailIcon from '@mui/icons-material/Email' | ||||
| import PinIcon from '@mui/icons-material/Pin' | ||||
| import NotificationsActiveIcon from '@mui/icons-material/NotificationsActive' | ||||
|  | ||||
| export function SnLoginRouter({ | ||||
|   ticket, | ||||
| @@ -18,8 +20,13 @@ export function SnLoginRouter({ | ||||
|   factorList: SnAuthFactor[] | ||||
|   onNext: (val: SnAuthFactor) => void | ||||
| }) { | ||||
|   const factorTypeIcons = [<PasswordIcon key="password-icon" />, <EmailIcon key="email-icon" />] | ||||
|   const factorTypeLabels = ['Password', 'Email verification code'] | ||||
|   const factorTypeIcons = [ | ||||
|     <PasswordIcon key="password-icon" />, | ||||
|     <EmailIcon key="email-icon" />, | ||||
|     <PinIcon key="pin-icon" />, | ||||
|     <NotificationsActiveIcon key="notification-icon" />, | ||||
|   ] | ||||
|   const factorTypeLabels = ['Password', 'Email verification code', 'Time-based OTP', 'In-app verification code'] | ||||
|  | ||||
|   const [error, setError] = useState<string | null>(null) | ||||
|   const [loading, setLoading] = useState<boolean>(false) | ||||
|   | ||||
| @@ -6,6 +6,7 @@ import { useUserStore } from 'solar-js-sdk' | ||||
| import { Box, Container, Typography } from '@mui/material' | ||||
| import { useRouter } from 'next/router' | ||||
| import { useState } from 'react' | ||||
| import { useSearchParams } from 'next/navigation' | ||||
|  | ||||
| export default function Login() { | ||||
|   const [period, setPeriod] = useState<number>(0) | ||||
| @@ -14,17 +15,12 @@ export default function Login() { | ||||
|   const [factor, setFactor] = useState<SnAuthFactor | null>(null) | ||||
|  | ||||
|   const router = useRouter() | ||||
|   const searchParams = useSearchParams() | ||||
|   const userStore = useUserStore() | ||||
|  | ||||
|   function doCallback() { | ||||
|     if (router.query['redirect_url']) { | ||||
|       let redirectUrl: string | ||||
|       if (Array.isArray(router.query['redirect_url'])) { | ||||
|         redirectUrl = router.query['redirect_url'][0] | ||||
|       } else { | ||||
|         redirectUrl = router.query['redirect_url'].toString() | ||||
|       } | ||||
|  | ||||
|     let redirectUrl = searchParams.get('redirect_url') | ||||
|     if (redirectUrl) { | ||||
|       if (redirectUrl.startsWith('/')) { | ||||
|         router.push(redirectUrl) | ||||
|       } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user