useSignIn()
import { useSignIn } from '@auth/clerk'
- useSignIn()
Low-level Clerk sign-in resource with a universal import path. Prefer useSignInFlow()
for a batteries-included flow with form state.
Usage
CustomSignIn.tsx
import { useSignIn } from '@auth/clerk'
export const CustomSignIn = () => {
const { isLoaded, signIn, setActive } = useSignIn()
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
const onSubmit = async () => {
if (!isLoaded) return
const attempt = await signIn.create({ identifier: email, password })
if (attempt.status === 'complete') await setActive({ session: attempt.createdSessionId! })
}
return (
<View>
{/* ...inputs... */}
<Button title="Sign in" onPress={onSubmit} />
</View>
)
}
API
Returned values (selection)
isLoaded: boolean
— Whether the resource is ready.signIn: SignInResource
— Clerk sign-in resource.setActive: (params) => Promise<void>
— Set the active session.
See official docs for full details: https://clerk.com/docs/nextjs/reference/hooks/use-sign-in