Commit 0fde51fe by Arjun Jhukal

updated the minor changes

parent c0301948
import { SeonProvider } from '@/app/SeonProvider'
import LoginPage from '@/components/pages/auth/login' import LoginPage from '@/components/pages/auth/login'
import React from 'react' import React from 'react'
export default function Login() { export default function Login() {
return ( return (
<LoginPage /> <SeonProvider>
<LoginPage />
</SeonProvider>
) )
} }
...@@ -5,9 +5,14 @@ import seon from "@seontechnologies/seon-javascript-sdk"; ...@@ -5,9 +5,14 @@ import seon from "@seontechnologies/seon-javascript-sdk";
type SeonContextType = { type SeonContextType = {
deviceId?: string; deviceId?: string;
loading: boolean; loading: boolean;
sessionData?: any; // For storing additional session information if available
}; };
const SeonContext = createContext<SeonContextType>({ deviceId: undefined, loading: true }); const SeonContext = createContext<SeonContextType>({
deviceId: undefined,
loading: true,
sessionData: undefined
});
export const useSeon = () => useContext(SeonContext); export const useSeon = () => useContext(SeonContext);
...@@ -16,7 +21,7 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children ...@@ -16,7 +21,7 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
useEffect(() => { useEffect(() => {
// Initialize the SDK on page load
seon.init({ seon.init({
behavioralDataCollection: { behavioralDataCollection: {
targets: 'input[type="text"], .behavior', targets: 'input[type="text"], .behavior',
...@@ -24,9 +29,12 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children ...@@ -24,9 +29,12 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children
}, },
}); });
// Collect fingerprint // Collect fingerprint session
seon.getSession() seon.getSession()
.then((session: any) => { .then((session: string) => {
// session holds the encrypted fingerprint as a base64 encoded string
// This is what you send to your backend for fraud detection
console.log("Device fingerprint session:", session);
setDeviceId(session); setDeviceId(session);
setLoading(false); setLoading(false);
}) })
...@@ -35,10 +43,10 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children ...@@ -35,10 +43,10 @@ export const SeonProvider: React.FC<{ children: React.ReactNode }> = ({ children
setLoading(false); setLoading(false);
}); });
// Cleanup behavioral tracking if needed // Cleanup: disable behavioral tracking when component unmounts
return () => { return () => {
seon.init({ seon.init({
behavioralDataCollection: { targets: "" }, behavioralDataCollection: { targets: "" }, // disables tracking
}); });
}; };
}, []); }, []);
......
...@@ -14,7 +14,7 @@ import { showToast, ToastVariant } from '@/slice/toastSlice'; ...@@ -14,7 +14,7 @@ import { showToast, ToastVariant } from '@/slice/toastSlice';
import { clearTokens, setTokens } from '@/slice/authSlice'; import { clearTokens, setTokens } from '@/slice/authSlice';
import PasswordField from '@/components/molecules/PasswordField'; import PasswordField from '@/components/molecules/PasswordField';
import { ArrowLeft } from '@wandersonalwes/iconsax-react'; import { ArrowLeft } from '@wandersonalwes/iconsax-react';
// import { useSeon } from '@/app/SeonProvider'; import { useSeon } from '@/app/SeonProvider';
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
emailAddress: Yup.string() emailAddress: Yup.string()
...@@ -39,7 +39,7 @@ export default function LoginPage() { ...@@ -39,7 +39,7 @@ export default function LoginPage() {
const router = useRouter(); const router = useRouter();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const [loginUser, { isLoading }] = useLoginMutation(); const [loginUser, { isLoading }] = useLoginMutation();
// const { deviceId, loading } = useSeon(); const { deviceId, loading } = useSeon();
const { handleSubmit, handleBlur, handleChange, errors, dirty, values, touched } = useFormik( const { handleSubmit, handleBlur, handleChange, errors, dirty, values, touched } = useFormik(
{ {
initialValues, initialValues,
...@@ -49,7 +49,7 @@ export default function LoginPage() { ...@@ -49,7 +49,7 @@ export default function LoginPage() {
const response = await loginUser({ const response = await loginUser({
email: values.emailAddress, email: values.emailAddress,
password: values.password, password: values.password,
// device_id:deviceId device_id: deviceId
}).unwrap(); }).unwrap();
dispatch( dispatch(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment