2
0

🛂 (radar) Correctly block banned IP event when signing in with oauth providers

This commit is contained in:
Baptiste Arnaud
2023-12-27 08:11:15 +01:00
parent cee1373e6a
commit 74f5a17de0
3 changed files with 17 additions and 4 deletions

View File

@ -17,9 +17,10 @@ export const SignInError = ({ error }: Props) => {
OAuthAccountNotLinked: t('auth.error.oauthNotLinked'),
default: t('auth.error.unknown'),
}
if (!errors[error]) return null
return (
<Alert status="error" variant="solid" rounded="md">
{errors[error] ?? errors[error]}
{errors[error]}
</Alert>
)
}

View File

@ -65,6 +65,17 @@ export const SignInForm = ({
})()
}, [status, router])
useEffect(() => {
if (!router.isReady) return
if (router.query.error === 'ip-banned') {
showToast({
status: 'info',
description:
'Your account has suspicious activity and is being reviewed by our team. Feel free to contact us.',
})
}
}, [router.isReady, router.query.error, showToast])
const handleEmailChange = (e: ChangeEvent<HTMLInputElement>) =>
setEmailValue(e.target.value)

View File

@ -139,6 +139,7 @@ export const getAuthOptions = ({
pages: {
signIn: '/signin',
newUser: env.NEXT_PUBLIC_ONBOARDING_TYPEBOT_ID ? '/onboarding' : undefined,
error: '/signin',
},
events: {
signIn({ user }) {
@ -199,12 +200,12 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
if (
env.RADAR_HIGH_RISK_KEYWORDS &&
req.url?.startsWith('/api/auth/signin') &&
req.method === 'POST'
((req.method === 'POST' && req.url?.startsWith('/api/auth/signin')) ||
(req.method === 'GET' && req.url?.startsWith('/api/auth/callback')))
) {
const ip = getIp(req)
if (ip) {
const isIpBanned = await prisma.bannedIp.findFirst({
const isIpBanned = await prisma.bannedIp.count({
where: {
ip,
},