To ensure a highly secure and customized experience, the Sasini App utilizes a strict, multi-step identity pipeline. Whether you are registering for the first time, establishing a new session, or updating your credentials, our systems operate on a Zero-Trust Architecture. This infrastructure actively monitors for anomalies and requires explicit verification at every stage to guarantee that your harvest records and financial payouts remain permanently protected.
The Sasini ecosystem operates across diverse demographics. To ensure accurate data entry and seamless navigation, the onboarding process begins with interface localization.
1
Launch the Application
The onboarding process begins with interface localization i.e. Selection of preferred language and identity selection to determine the user’s specific permissions.
The welcome screen presents two distinct pathways:
Sasini Farmer: For official tea/coffee producers.
Guest / Buyer: For marketplace participants and external stakeholders.
Backend Security: Zero-Trust Handshake
What happens under the hood: The moment the app launches, it initiates a secure “handshake” with the Sasini servers. We assume every connection is potentially hostile. The backend instantly scans the connection for SSL/TLS 1.3 encryption certificates to ensure the network hasn’t been compromised before allowing the app to load.
2
Select Preferred Language
Users must select between English, Swahili, French, or German. This selection executes a global state update, translating all UI components and instructions.
Post-Registration Adjustments: If you select the wrong language during onboarding, you can always update your localization preferences later from the primary Settings menu.
Account creation is strictly limited to authorized personnel. Before establishing a profile, the system must verify the user against the central Sasini factory database.
1
Input Farmer ID and other credentials
The user is required to input their officially registered Sasini Farmer ID, National ID and Phone Number. This establishes the crucial link between the digital account and real-world delivery records.
Guests and Buyers bypass the ID validation and proceed directly to email registration (Account Creation Phase).
Backend Security: Parameterized Query Execution
What happens under the hood: To absolutely prevent SQL Injection, the backend sanitizes the Farmer ID, National ID and Phone Number using parameterized queries. It strips the input of executable code before querying the encrypted database. Invalid IDs throw a generic Validation Failed.
2
System Verification
If verified, the app retrieves the farmer’s foundational profile data and authorizes progression to the security setup phase. If invalid, the process is securely halted.
Locating Your ID: Your official Farmer ID is printed on your physical delivery receipts and factory registration documents. If you have misplaced it, please contact your local Sasini extension officer.
What happens under the hood: When the user taps “Submit,” the password is encrypted locally on the device before transmission, so even if intercepted over public Wi-Fi it appears as an unreadable string of randomized characters. Sasini never stores actual passwords—the backend converts them using a salted cryptographic hashing algorithm, creating a one-way hash that makes stolen database data useless to attackers. 🔐
2
Enforce Password Policies
To protect sensitive financial ledgers, the platform strictly enforces robust password complexity requirements. The password must contain:
At least one uppercase letter
At least one lowercase letter
At least one number
At least one special symbol (e.g., @, #, $, !)
3
Legal Agreements
Users must formally acknowledge and accept the Terms of Use and Privacy Policy to proceed.
Credential Security: Avoid using easily guessable information such as your name or birth year. For optimal security, consider using a dedicated Password Manager application to generate and store your credentials.
To eliminate fraudulent registrations and guarantee secure communication channels, the platform mandates a rigorous email verification loop.
Backend Security: Secure Token & Link Protection
What happens under the hood: Verification links contain cryptographically secure tokens generated using a CSPRNG. These tokens are unique, tied to the request context, and expire quickly. Once used, the system immediately invalidates the token to prevent replay attacks or reuse of old links.
1
Dispatch Verification
Upon submitting the registration payload, the server dispatches a secure, time-sensitive verification link to the registered email address.
2
Action Required
The user must navigate to their email client and click the embedded secure link. This verifies cryptographic ownership of the designated address.
3
Resend Protocol
To prevent server spamming, if the email is not received immediately, the system enforces a mandatory 60-second cooldown before a new verification payload can be requested.
Troubleshooting: If you do not see the verification email in your primary inbox, please ensure you check your ‘Spam’ or ‘Junk’ folders, as strict security emails are occasionally filtered by providers like Gmail or Yahoo.
Upon successful token verification, the backend commits the registration data and provisions the user’s secure environment.
Backend Security: Secure Sessions & Audit Logging
What happens under the hood: After verification, the server issues a secure JWT session token used to authenticate all user actions, with frequent rotation to limit hijacked sessions. The event is also recorded in an immutable, write-only audit log to ensure permanent traceability and ongoing security monitoring.
1
Data Synchronization
The user’s Unique Digital ID is finalized, and the application securely syncs historical harvest data, delivery logs, and payment ledgers from the factory servers.
2
Enter the Dashboard
The user (farmer) is routed directly to the main Dashboard, while the Guest/Buyers are routed to a similar dashboard only that high-stakes modules such as deliveries and payments are injected after the user role is validated as a registered farmer finalizing the onboarding sequence.
Subsequent access to the platform requires strict authentication. While streamlined for the user, the backend executes complex risk analyses during every login attempt.
The user inputs their verified Email Address and Password into the authentication portal.
Backend Security: Constant-Time Hash Comparison
What happens under the hood: The backend retrieves the hashed password and applies the same algorithm to the newly typed password. To prevent “Timing Attacks,” the server uses a constant-time comparison, taking the exact same microsecond to respond whether the password is right or wrong.
Users are strongly encouraged to terminate their sessions when accessing the platform via shared hardware.
1
Initiate Logout
Navigate to the Settings profile and tap Log Out. The system will present a confirmation dialog to prevent accidental session termination.
Backend Security: JWT Revocation & Blacklisting
What happens under the hood: Clicking “Log Out” does not just clear the screen. The frontend deletes the secure token from local storage, while the backend actively adds that specific session token to a cryptographic “Blacklist.” Even if a hacker managed to copy the token right before the user logged out, the server will reject it entirely.
Device Management: If you ever lose your mobile device, please contact Sasini Support immediately. Our administrators can manually revoke all active sessions remotely, securing your account instantly.
In the event of lost credentials, users can securely re-establish access without compromising historical data.
1
Request Reset
Select Forgot Password from the primary authentication screen and provide the registered email address.
2
Secure Email Link
The system dispatches a cryptographic reset link. To minimize the window of vulnerability, this link automatically expires in exactly 15 minutes.
Backend Security: Anti-Enumeration & Signed URLs
What happens under the hood: To prevent hackers from guessing which emails are registered, the backend will always say “If this email exists, a reset link has been sent,” regardless of whether the email is valid. The link sent contains a securely signed URL payload that can only be decrypted by our servers.
3
Create New Credentials
The user clicks the authorized link and submits a new password adhering to the platform’s strict complexity parameters.
When a user actively chooses to update their password from within the application, the system enforces a strict re-authentication loop. This architectural decision prevents unauthorized password modifications if an unlocked device is compromised.
1
Initiate Change
Upon selecting Change Password within the profile settings, the application deliberately and immediately terminates the active session.
2
Re-Authenticate
The user is routed to the login portal and must successfully authenticate using their current credentials, verifying physical ownership of the device.
3
Identity Verification
Following successful authentication, the system intercepts the standard routing and presents a verification dialog: “Identity Verified. Click Continue to change your password.”
4
Update & Auto-Logout
The user inputs the new parameters. Upon successful submission, the system executes the update and automatically terminates the session a second time.
5
Final Verification
The user logs in with the newly established credentials, verifying database synchronization.
Backend Security: Cryptographic Salt Rotation
What happens under the hood: When the password is changed, the backend doesn’t just hash the new password; it generates a brand new cryptographic “Salt” (a random data string) and destroys the old one. It also instantly revokes all active sessions on any other devices, forcing anyone using the account to re-authenticate immediately.
Proactive Security: For maximum account integrity, cybersecurity standards recommend updating your password every 90 to 120 days.
Users maintain full autonomy over their digital footprint and may request account deactivation at any time via the Security Settings.
Critical Notice: Account deactivation is reversible whereas Account deletion is irreversible. Historical harvest weights, payment ledgers, and AI-driven agricultural insights cannot be recovered once purged.
1
Initiate Deactivation
The user selects Deactivate Account and must verify their intent via MFA to prevent accidental deletion.
2
Grace Period
For Deleted accounts, the account is transitioned into a suspended state for 30 days. But for Deactivated accounts, the user may rescind the deactivation request simply by executing a successful login or Contacting the Support team for activation purposes.
3
Permanent Purge
Following the 30-day window, the system executes a permanent data purge.
Backend Security: Cascading Data Anonymization
What happens under the hood: To maintain the integrity of Sasini’s overall agricultural and financial analytics while complying with data protection laws, the backend performs a “Cascading Anonymization.” The user’s personal identifiable information (PII) like Name, Email, and Phone Number are permanently deleted and replaced with randomized string values. Their harvest weights and dates remain for corporate accounting, but they can mathematically never be traced back to the individual farmer again.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sasini App","colors":{"primary":"#76BD22","light":"#A3E635","dark":"#76BD22"},"logo":{"light":"https://mintcdn.com/escrivalimited/2ec_BfA7d8lermlr/logo/sasini-text-logo.svg?fit=max\u0026auto=format\u0026n=2ec_BfA7d8lermlr\u0026q=85\u0026s=b50f3cf152432cd4635192583ceff86f","dark":"https://mintcdn.com/escrivalimited/2ec_BfA7d8lermlr/logo/sasini-text-logo.svg?fit=max\u0026auto=format\u0026n=2ec_BfA7d8lermlr\u0026q=85\u0026s=b50f3cf152432cd4635192583ceff86f","href":"https://sasini.co.ke"},"favicon":"/favicon.svg","appearance":{"default":"dark","strict":true},"navbar":{"links":[{"href":"https://sasini.co.ke","label":"Sasini Website"},{"href":"/support/settings","label":"Help \u0026 Support"}]},"footer":{"socials":{"x":"https://x.com/sasiniplc","instagram":"https://www.instagram.com/sasiniplc?hl=en","facebook":"https://www.facebook.com/SasiniTeaandCoffee","linkedin":"https://ke.linkedin.com/company/sasini-plc","youtube":"https://www.youtube.com/channel/UCtwz5m5FWhxy-qub0N5F-MQ"}},"styling":{"codeblocks":"dark","latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"escrivalimited","hasAudioNarration":false,"actualSubdomain":"escrivalimited","customDomains":["docs.escrivalimited.com"],"gitSource":{"type":"github","owner":"danielwanjara71-creator","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":false},"entitlements":{},"buildId":"6ae94934062df11037fcfe32:success","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"System Users","count":12},{"language":"default","tag":"Farm Management Logistics","count":3},{"language":"default","tag":"AI, Insights \u0026 Weather","count":3},{"language":"default","tag":"Produce \u0026 Financials","count":2},{"language":"default","tag":"Account \u0026 Support","count":2},{"language":"default","tag":"Getting Started","count":1},{"language":"default","tag":"System Overview","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"getting-started/profile","slug":"/getting-started/profile","pageMetadata":{"title":"Authentication Lifecycle","icon":"shield-check","description":null,"href":"/getting-started/profile"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,em:`em`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Heading,OptimizedImage,Step,Steps,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`To ensure a highly secure and customized experience, the Sasini App utilizes a strict, multi-step identity pipeline. Whether you are registering for the first time, establishing a new session, or updating your credentials, our systems operate on a `,_jsx(_components.strong,{children:`Zero-Trust Architecture`}),`. This infrastructure actively monitors for anomalies and requires explicit verification at every stage to guarantee that your harvest records and financial payouts remain permanently protected.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`phase-1-registration-\u0026-onboarding`,children:`Phase 1: Registration \u0026 Onboarding`}),`\n`,_jsx(Heading,{level:`3`,id:`1-localization-\u0026-language-selection`,children:`1. Localization \u0026 Language Selection`}),`\n`,_jsx(_components.p,{children:`The Sasini ecosystem operates across diverse demographics. To ensure accurate data entry and seamless navigation, the onboarding process begins with interface localization.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Launch the Application`,children:[_jsx(_components.p,{children:`The onboarding process begins with interface localization i.e. Selection of preferred language and identity selection to determine the user’s specific permissions.\nThe welcome screen presents two distinct pathways:\nSasini Farmer: For official tea/coffee producers.\nGuest / Buyer: For marketplace participants and external stakeholders.`}),_jsx(Accordion,{title:`Backend Security: Zero-Trust Handshake`,icon:`server`,id:`backend-security-zero-trust-handshake`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` The moment the app launches, it initiates a secure “handshake” with the Sasini servers. We assume every connection is potentially hostile. The backend instantly scans the connection for SSL/TLS 1.3 encryption certificates to ensure the network hasn’t been compromised before allowing the app to load.`]})})]}),_jsx(Step,{title:`Select Preferred Language`,children:_jsxs(_components.p,{children:[`Users must select between `,_jsx(_components.strong,{children:`English`}),`, `,_jsx(_components.strong,{children:`Swahili`}),`, `,_jsx(_components.strong,{children:`French`}),`, or `,_jsx(_components.strong,{children:`German`}),`. This selection executes a global state update, translating all UI components and instructions.`]})})]}),`\n`,_jsx(`div`,{style:{height:`20px`}}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=ed5ed33db9a34bc05b7e5efb31769034`,alt:`Language Selection Screen`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`337`,width:`337`,\"data-og-height\":`735`,height:`735`,\"data-path\":`images/language-selection.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=0256d588ced52f104650d0e6691cc8ba 280w, https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=bb45c3861e9e91c4fa58261a66882de6 560w, https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=535bbc8068a98f58ff2d2ff14ce8dacc 840w, https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=befa5ebba17fb07a7ed6a1b3fe0fa932 1100w, https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=f409c53a0a87c0a351def56821795d00 1650w, https://mintcdn.com/escrivalimited/Bc_j5YiuWgVjPkB-/images/language-selection.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=Bc_j5YiuWgVjPkB-\u0026q=85\u0026s=ca98baeaf97d15845449c220eefc2de9 2500w`})}),`\n`,_jsx(`div`,{style:{height:`20px`}}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Post-Registration Adjustments:`}),` If you select the wrong language during onboarding, you can always update your localization preferences later from the primary Settings menu.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`2-farmer-validation-protocol`,children:`2. Farmer Validation Protocol`}),`\n`,_jsx(_components.p,{children:`Account creation is strictly limited to authorized personnel. Before establishing a profile, the system must verify the user against the central Sasini factory database.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Input Farmer ID and other credentials`,children:[_jsxs(_components.p,{children:[`The user is required to input their officially registered `,_jsx(_components.strong,{children:`Sasini Farmer ID`}),`, `,_jsx(_components.strong,{children:`National ID`}),` and `,_jsx(_components.strong,{children:`Phone Number`}),`. This establishes the crucial link between the digital account and real-world delivery records.\nGuests and Buyers bypass the ID validation and proceed directly to email registration (Account Creation Phase).`]}),_jsx(Accordion,{title:`Backend Security: Parameterized Query Execution`,icon:`server`,id:`backend-security-parameterized-query-execution`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` To absolutely prevent SQL Injection, the backend sanitizes the Farmer ID, National ID and Phone Number using parameterized queries. It strips the input of executable code before querying the encrypted database. Invalid IDs throw a generic `,_jsx(_components.code,{children:`Validation Failed`}),`.`]})})]}),_jsx(Step,{title:`System Verification`,children:_jsx(_components.p,{children:`If verified, the app retrieves the farmer’s foundational profile data and authorizes progression to the security setup phase. If invalid, the process is securely halted.`})})]}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=f9003a1191a77610a9313447f8432446`,alt:`Farmer ID Validation Screen`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/farmer-validation.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=397c1dd65a176f16f94063e144e93fb8 280w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=cb2dd98a15df843d74c04fa29b0e7dae 560w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=b45b6ba17e8fadb987ae62a1bd509241 840w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=ba9a56aef9d63dac3dd008fb791c9864 1100w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=4a3c8b036144677d496ff50c9b9754d0 1650w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/farmer-validation.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=a09ece41b7dd04e7cf3443da66bc6b99 2500w`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Locating Your ID:`}),` Your official Farmer ID is printed on your physical delivery receipts and factory registration documents. If you have misplaced it, please contact your local Sasini extension officer.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`3-account-creation-\u0026-mfa-setup`,children:`3. Account Creation \u0026 MFA Setup`}),`\n`,_jsx(_components.p,{children:`Following validation, the user must secure their digital identity using Multi-Factor Authentication (MFA) parameters.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Enter Credentials`,children:[_jsxs(_components.p,{children:[`The user registers their primary `,_jsx(_components.strong,{children:`Email Address`}),` and establishes a secure `,_jsx(_components.strong,{children:`Password`}),` for future authentication.`]}),_jsx(Accordion,{title:`Backend Security: Backend Security: Encryption \u0026 Password Protection`,icon:`server`,id:`backend-security-backend-security-encryption-and-password-protection`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` When the user taps “Submit,” the password is encrypted locally on the device before transmission, so even if intercepted over public Wi-Fi it appears as an unreadable string of randomized characters. Sasini never stores actual passwords—the backend converts them using a salted cryptographic hashing algorithm, creating a one-way hash that makes stolen database data useless to attackers. 🔐`]})})]}),_jsxs(Step,{title:`Enforce Password Policies`,children:[_jsx(_components.p,{children:`To protect sensitive financial ledgers, the platform strictly enforces robust password complexity requirements. The password must contain:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`At least one `,_jsx(_components.strong,{children:`uppercase letter`})]}),`\n`,_jsxs(_components.li,{children:[`At least one `,_jsx(_components.strong,{children:`lowercase letter`})]}),`\n`,_jsxs(_components.li,{children:[`At least one `,_jsx(_components.strong,{children:`number`})]}),`\n`,_jsxs(_components.li,{children:[`At least one `,_jsx(_components.strong,{children:`special symbol`}),` (e.g., @, #, $, !)`]}),`\n`]})]}),_jsx(Step,{title:`Legal Agreements`,children:_jsxs(_components.p,{children:[`Users must formally acknowledge and accept the `,_jsx(_components.strong,{children:`Terms of Use`}),` and `,_jsx(_components.strong,{children:`Privacy Policy`}),` to proceed.`]})})]}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=179c124e227d2f67d688710db68e9086`,alt:`Registration Details Screen`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/registration-details.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=458f0ea2695a042e6a2b7fc8eaafbbc7 280w, https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=5c05976260e10a3e369ddc41ffe52a38 560w, https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=45e3064309639105859e680b1879c73a 840w, https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=d0531f5c856da113f8bf07c6db08c6d9 1100w, https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=2dc7d3cf4c54c05bb9e554f98ce23046 1650w, https://mintcdn.com/escrivalimited/NhUQiugTrJ1QgDnT/images/registration-details.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=NhUQiugTrJ1QgDnT\u0026q=85\u0026s=70a976af130c62dfe3e520309083904a 2500w`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Credential Security:`}),` Avoid using easily guessable information such as your name or birth year. For optimal security, consider using a dedicated Password Manager application to generate and store your credentials.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`4-email-link-verification`,children:`4. Email Link Verification`}),`\n`,_jsx(_components.p,{children:`To eliminate fraudulent registrations and guarantee secure communication channels, the platform mandates a rigorous email verification loop.`}),`\n`,_jsx(Accordion,{title:`Backend Security: Secure Token \u0026 Link Protection`,icon:`server`,id:`backend-security-secure-token-and-link-protection`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` Verification links contain cryptographically secure tokens generated using a CSPRNG. These tokens are unique, tied to the request context, and expire quickly. Once used, the system immediately invalidates the token to prevent replay attacks or reuse of old links.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Dispatch Verification`,children:_jsx(_components.p,{children:`Upon submitting the registration payload, the server dispatches a secure, time-sensitive verification link to the registered email address.`})}),_jsx(Step,{title:`Action Required`,children:_jsx(_components.p,{children:`The user must navigate to their email client and click the embedded secure link. This verifies cryptographic ownership of the designated address.`})}),_jsx(Step,{title:`Resend Protocol`,children:_jsxs(_components.p,{children:[`To prevent server spamming, if the email is not received immediately, the system enforces a mandatory `,_jsx(_components.strong,{children:`60-second cooldown`}),` before a new verification payload can be requested.`]})})]}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=7a090161de06cdcc746de0a1c1bd605f`,alt:`Email Verification Prompt`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/email-verification.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=c5f103743a45b14a6badc5c9953b6c95 280w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=b4cb5cc4f8f66eadbed1263ec5bbd3e5 560w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=0bfb6442ba32c22d87c296c921ea6a99 840w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=face5421ec7a08f51712646e28d35d86 1100w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=e268431fbd67dde02f3aed66a4141938 1650w, https://mintcdn.com/escrivalimited/f40gPCbcaplZPLSn/images/email-verification.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=f40gPCbcaplZPLSn\u0026q=85\u0026s=129757e46db3b41d366e0eee4aea3122 2500w`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Troubleshooting:`}),` If you do not see the verification email in your primary inbox, please ensure you check your ‘Spam’ or ‘Junk’ folders, as strict security emails are occasionally filtered by providers like Gmail or Yahoo.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`5-profile-finalization-\u0026-dashboard`,children:`5. Profile Finalization \u0026 Dashboard`}),`\n`,_jsx(_components.p,{children:`Upon successful token verification, the backend commits the registration data and provisions the user’s secure environment.`}),`\n`,_jsx(Accordion,{title:`Backend Security: Secure Sessions \u0026 Audit Logging`,icon:`server`,id:`backend-security-secure-sessions-and-audit-logging`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` After verification, the server issues a secure `,_jsx(_components.strong,{children:`JWT session token`}),` used to authenticate all user actions, with frequent rotation to limit hijacked sessions. The event is also recorded in an `,_jsx(_components.strong,{children:`immutable, write-only audit log`}),` to ensure permanent traceability and ongoing security monitoring.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Data Synchronization`,children:_jsx(_components.p,{children:`The user’s Unique Digital ID is finalized, and the application securely syncs historical harvest data, delivery logs, and payment ledgers from the factory servers.`})}),_jsx(Step,{title:`Enter the Dashboard`,children:_jsxs(_components.p,{children:[`The user (farmer) is routed directly to the main `,_jsx(_components.strong,{children:`Dashboard`}),`, while the Guest/Buyers are routed to a similar dashboard only that high-stakes modules such as deliveries and payments are injected after the user role is validated as a registered farmer finalizing the onboarding sequence.`]})})]}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=e9590ab88fd06167df17fbd4dd3870c9`,alt:`Sasini App Main Dashboard`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`404`,width:`404`,\"data-og-height\":`871`,height:`871`,\"data-path\":`images/main-dashboard.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=e681df0f4d4782e828b5c575e04fc6b4 280w, https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=ebb8f541a50a0eda53670bd0ae18c2fb 560w, https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=9b3a6558acc6e73a2682b1a887d2d84a 840w, https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=b79d675ee2ebe3ee3acc10e197e7138d 1100w, https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=10b3412400bf4db11cb5041c94e6171f 1650w, https://mintcdn.com/escrivalimited/7qc8vOi6GuaObtOI/images/main-dashboard.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=7qc8vOi6GuaObtOI\u0026q=85\u0026s=cf64e807b890aa4c7bb92217dbd0a1a0 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`phase-2-login-\u0026-access`,children:`Phase 2: Login \u0026 Access`}),`\n`,_jsx(_components.p,{children:`Subsequent access to the platform requires strict authentication. While streamlined for the user, the backend executes complex risk analyses during every login attempt.`}),`\n`,_jsx(Heading,{level:`3`,id:`1-credential-submission`,children:`1. Credential Submission`}),`\n`,_jsx(Steps,{children:_jsxs(Step,{title:`Sign In`,children:[_jsx(_components.p,{children:`The user inputs their verified Email Address and Password into the authentication portal.`}),_jsx(Accordion,{title:`Backend Security: Constant-Time Hash Comparison`,icon:`server`,id:`backend-security-constant-time-hash-comparison`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` The backend retrieves the hashed password and applies the same algorithm to the newly typed password. To prevent “Timing Attacks,” the server uses a constant-time comparison, taking the exact same microsecond to respond whether the password is right or wrong.`]})})]})}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=d7d5ce7a12bb3f742b1cd080d6e08b61`,alt:`Sasini App Login Screen`,style:{maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/login-screen.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=f7e96465d4413ec9b4195b11f481755e 280w, https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=15f1d5a3328c2136670dadb6efc9aaa3 560w, https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=eaca7753e82fcda7512b5d76dacac491 840w, https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=f60c17a08bbb11359f5ceec2786476a5 1100w, https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=a56d6aae7f187cf111236045478b3d29 1650w, https://mintcdn.com/escrivalimited/bxN5Sc1kw2hf3k3i/images/login-screen.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=bxN5Sc1kw2hf3k3i\u0026q=85\u0026s=80af3f7c2ef3ee6063850ec2a7a2953d 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`phase-3-account-recovery-\u0026-settings`,children:`Phase 3: Account Recovery \u0026 Settings`}),`\n`,_jsx(_components.p,{children:`To accommodate device sharing and administrative updates, the Sasini App provides a comprehensive, highly secure credential management suite.`}),`\n`,_jsx(Heading,{level:`3`,id:`1-session-termination-logging-out`,children:`1. Session Termination (Logging Out)`}),`\n`,_jsx(_components.p,{children:`Users are strongly encouraged to terminate their sessions when accessing the platform via shared hardware.`}),`\n`,_jsx(Steps,{children:_jsx(Step,{title:`Initiate Logout`,children:_jsxs(_components.p,{children:[`Navigate to the Settings profile and tap `,_jsx(_components.strong,{children:`Log Out`}),`. The system will present a confirmation dialog to prevent accidental session termination.`]})})}),`\n`,_jsx(Accordion,{title:`Backend Security: JWT Revocation \u0026 Blacklisting`,icon:`server`,id:`backend-security-jwt-revocation-and-blacklisting`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` Clicking “Log Out” does not just clear the screen. The frontend deletes the secure token from local storage, while the backend actively adds that specific session token to a cryptographic “Blacklist.” Even if a hacker managed to copy the token right before the user logged out, the server will reject it entirely.`]})}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=df13e5043c2c0de086ccce782edd4aaa`,alt:`Logout Confirmation Dialog`,style:{maxWidth:`300px`,margin:`1rem auto`,borderRadius:`12px`},\"data-og-width\":`456`,width:`456`,\"data-og-height\":`275`,height:`275`,\"data-path\":`images/logout-dialog.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=5ba9c7c2eb2e167546a0b2cfb8de7749 280w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=6253696a0361da940b03b9f6a3d4a868 560w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=44475a6c4db9015c4601237a00d60121 840w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=efe05cc03f694552b65d79b9057e84ee 1100w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=f74bf6cc808e77b82e3848a12fd049b6 1650w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/logout-dialog.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=a1a5d216979254d20e89edd77e4cd99a 2500w`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Device Management:`}),` If you ever lose your mobile device, please contact Sasini Support immediately. Our administrators can manually revoke all active sessions remotely, securing your account instantly.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`2-account-recovery-forgot-password`,children:`2. Account Recovery (Forgot Password)`}),`\n`,_jsx(_components.p,{children:`In the event of lost credentials, users can securely re-establish access without compromising historical data.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Request Reset`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Forgot Password`}),` from the primary authentication screen and provide the registered email address.`]})}),_jsxs(Step,{title:`Secure Email Link`,children:[_jsxs(_components.p,{children:[`The system dispatches a cryptographic reset link. To minimize the window of vulnerability, this link automatically expires in exactly `,_jsx(_components.strong,{children:`15 minutes`}),`.`]}),_jsx(Accordion,{title:`Backend Security: Anti-Enumeration \u0026 Signed URLs`,icon:`server`,id:`backend-security-anti-enumeration-and-signed-urls`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` To prevent hackers from guessing which emails are registered, the backend will `,_jsx(_components.em,{children:`always`}),` say “If this email exists, a reset link has been sent,” regardless of whether the email is valid. The link sent contains a securely signed URL payload that can only be decrypted by our servers.`]})})]}),_jsx(Step,{title:`Create New Credentials`,children:_jsx(_components.p,{children:`The user clicks the authorized link and submits a new password adhering to the platform’s strict complexity parameters.`})})]}),`\n`,_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=1c6c6a6476a2b84f28fc6a2b2830c6e0`,alt:`Forgot Password Page`,style:{width:`100%`,maxWidth:`300px`,margin:`0 auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/forgot-password-page.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=9966d479f62c306f2528f53af598e8fd 280w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=45c171335002be30ffc62ee47af9ef56 560w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=f2b98302c89c9d4fae913eac1b7ebe04 840w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=aad15e587d735ec37b8d337c264b6612 1100w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=dc557b0e017371713305f429d8534a84 1650w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/forgot-password-page.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=7f54a82e10f4c81375b4075e28ce7d94 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`3-the-strict-re-authentication-loop`,children:`3. The Strict Re-authentication Loop`}),`\n`,_jsx(_components.p,{children:`When a user actively chooses to update their password from within the application, the system enforces a strict re-authentication loop. This architectural decision prevents unauthorized password modifications if an unlocked device is compromised.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Initiate Change`,children:_jsxs(_components.p,{children:[`Upon selecting `,_jsx(_components.strong,{children:`Change Password`}),` within the profile settings, the application deliberately and immediately terminates the active session.`]})}),_jsx(Step,{title:`Re-Authenticate`,children:_jsxs(_components.p,{children:[`The user is routed to the login portal and must successfully authenticate using their `,_jsx(_components.em,{children:`current`}),` credentials, verifying physical ownership of the device.`]})}),_jsxs(Step,{title:`Identity Verification`,children:[_jsxs(_components.p,{children:[`Following successful authentication, the system intercepts the standard routing and presents a verification dialog: `,_jsx(_components.em,{children:`“Identity Verified. Click Continue to change your password.”`})]}),_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=06181c3cd069b52e7873261eda83e630`,alt:`Identity Verified Dialog`,style:{width:`100%`,maxWidth:`300px`,margin:`1rem auto`,borderRadius:`12px`},\"data-og-width\":`483`,width:`483`,\"data-og-height\":`386`,height:`386`,\"data-path\":`images/change-password-dialog.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=264c16ac5266460c50c3418ef1fd221a 280w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=f6c7012d9eb8caaa1a304e4f3eece3ab 560w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=949c933cd703e333ffc6fe14905e91f2 840w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=5c006983caf35713bbd7223fc2b1c481 1100w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=7de3f82cdf8bc3634141fa38a5f96a14 1650w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-dialog.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=8b7ed11c069cf87aad32a10fd4491dac 2500w`})})]}),_jsxs(Step,{title:`Update \u0026 Auto-Logout`,children:[_jsxs(_components.p,{children:[`The user inputs the new parameters. Upon successful submission, the system executes the update and `,_jsx(_components.strong,{children:`automatically terminates the session a second time`}),`.`]}),_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=d191b613bb0b150494b065261445dee7`,alt:`Enter New Password Page`,style:{width:`100%`,maxWidth:`300px`,margin:`1rem auto`,borderRadius:`12px`},\"data-og-width\":`715`,width:`715`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/change-password-page.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=bea0fe975a9ec4af94c8f28f623033fe 280w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=7d6eb3ef71fbd8222d43f1d11b27f53e 560w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=2d14e059d74e8d6a1f39ce4acfffc13b 840w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=d55fb2210e27b80f40d5ab809157ae1c 1100w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=3e4d5a377454c6ec6e95892c028299cc 1650w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/change-password-page.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=6cc8c530a3be7ce2994ec69f09e2c07f 2500w`})})]}),_jsxs(Step,{title:`Final Verification`,children:[_jsx(_components.p,{children:`The user logs in with the newly established credentials, verifying database synchronization.`}),_jsx(Accordion,{title:`Backend Security: Cryptographic Salt Rotation`,icon:`server`,id:`backend-security-cryptographic-salt-rotation`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` When the password is changed, the backend doesn’t just hash the new password; it generates a brand new cryptographic “Salt” (a random data string) and destroys the old one. It also instantly revokes all active sessions on any other devices, forcing anyone using the account to re-authenticate immediately.`]})})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Proactive Security:`}),` For maximum account integrity, cybersecurity standards recommend updating your password every 90 to 120 days.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`4-account-deactivation`,children:`4. Account Deactivation`}),`\n`,_jsx(_components.p,{children:`Users maintain full autonomy over their digital footprint and may request account deactivation at any time via the Security Settings.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Critical Notice:`}),` Account deactivation is `,_jsx(_components.strong,{children:`reversible`}),` whereas Account deletion is `,_jsx(_components.strong,{children:`irreversible`}),`. Historical harvest weights, payment ledgers, and AI-driven agricultural insights cannot be recovered once purged.`]})}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Initiate Deactivation`,children:[_jsxs(_components.p,{children:[`The user selects `,_jsx(_components.strong,{children:`Deactivate Account`}),` and must verify their intent via MFA to prevent accidental deletion.`]}),_jsx(`div`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=cd66e659fcc970711398acd19f43f3f9`,alt:`Account Deactivation Dialog`,style:{width:`100%`,maxWidth:`300px`,margin:`1rem auto`,borderRadius:`12px`},\"data-og-width\":`468`,width:`468`,\"data-og-height\":`391`,height:`391`,\"data-path\":`images/deactivate-account-dialog.jpeg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=280\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=30a7dd28c7bbbb131907d8e128ff31e3 280w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=560\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=a793f6b724c1e932a3d0b203c9758536 560w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=840\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=3bef939449f0114ecb23b558ed5f0ffc 840w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=1100\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=b66610e3a5585b04eb937d417f2531ef 1100w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=1650\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=b66e8110c48a77e07f1eaec3ab7bfa60 1650w, https://mintcdn.com/escrivalimited/DeBIWccfQxCUGZgK/images/deactivate-account-dialog.jpeg?w=2500\u0026fit=max\u0026auto=format\u0026n=DeBIWccfQxCUGZgK\u0026q=85\u0026s=97d9dbe68e9f3efa8df58ba24fc788fb 2500w`})})]}),_jsx(Step,{title:`Grace Period`,children:_jsxs(_components.p,{children:[`For `,_jsx(_components.strong,{children:`Deleted`}),` accounts, the account is transitioned into a suspended state for 30 days. But for `,_jsx(_components.strong,{children:`Deactivated`}),` accounts, the user may rescind the deactivation request simply by executing a successful login or Contacting the Support team for activation purposes.`]})}),_jsxs(Step,{title:`Permanent Purge`,children:[_jsx(_components.p,{children:`Following the 30-day window, the system executes a permanent data purge.`}),_jsx(Accordion,{title:`Backend Security: Cascading Data Anonymization`,icon:`server`,id:`backend-security-cascading-data-anonymization`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What happens under the hood:`}),` To maintain the integrity of Sasini’s overall agricultural and financial analytics while complying with data protection laws, the backend performs a “Cascading Anonymization.” The user’s personal identifiable information (PII) like Name, Email, and Phone Number are permanently deleted and replaced with randomized string values. Their harvest weights and dates remain for corporate accounting, but they can mathematically never be traced back to the individual farmer again.`]})})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Authentication Lifecycle","icon":"shield-check","description":null,"href":"/getting-started/profile"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Phase 1: Registration \u0026 Onboarding","slug":"phase-1-registration-\u0026-onboarding","depth":2,"children":[{"title":"1. Localization \u0026 Language Selection","slug":"1-localization-\u0026-language-selection","depth":3,"children":[]},{"title":"2. Farmer Validation Protocol","slug":"2-farmer-validation-protocol","depth":3,"children":[]},{"title":"3. Account Creation \u0026 MFA Setup","slug":"3-account-creation-\u0026-mfa-setup","depth":3,"children":[]},{"title":"4. Email Link Verification","slug":"4-email-link-verification","depth":3,"children":[]},{"title":"5. Profile Finalization \u0026 Dashboard","slug":"5-profile-finalization-\u0026-dashboard","depth":3,"children":[]}]},{"title":"Phase 2: Login \u0026 Access","slug":"phase-2-login-\u0026-access","depth":2,"children":[{"title":"1. Credential Submission","slug":"1-credential-submission","depth":3,"children":[]}]},{"title":"Phase 3: Account Recovery \u0026 Settings","slug":"phase-3-account-recovery-\u0026-settings","depth":2,"children":[{"title":"1. Session Termination (Logging Out)","slug":"1-session-termination-logging-out","depth":3,"children":[]},{"title":"2. Account Recovery (Forgot Password)","slug":"2-account-recovery-forgot-password","depth":3,"children":[]},{"title":"3. The Strict Re-authentication Loop","slug":"3-the-strict-re-authentication-loop","depth":3,"children":[]},{"title":"4. Account Deactivation","slug":"4-account-deactivation","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"escrivalimited","siteName":"Sasini App","title":"Authentication Lifecycle - Sasini App","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-09T13:46:18.263Z","originalFileLocation":"getting-started/profile.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Sasini App\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication Lifecycle - Sasini App\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sasini App\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.escrivalimited.com/docs/getting-started/profile\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://escrivalimited.mintlify.site/docs/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Authentication+Lifecycle\u0026amp;theme=0d60330af49c46b571f5ad5e\u0026amp;signature=8d654df904b312f4ad57028e21db41cdfa6cc61588732b0d41e942680466d290\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication Lifecycle - Sasini App\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://escrivalimited.mintlify.site/docs/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Authentication+Lifecycle\u0026amp;theme=0d60330af49c46b571f5ad5e\u0026amp;signature=8d654df904b312f4ad57028e21db41cdfa6cc61588732b0d41e942680466d290\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/escrivalimited/nlbDblj22eB3U8B9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sasini App\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#76BD22\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.escrivalimited.com/docs/getting-started/profile\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/getting-started/profile.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.escrivalimited.com/#organization\",\"name\":\"Sasini App\",\"url\":\"https://docs.escrivalimited.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/escrivalimited/2ec_BfA7d8lermlr/logo/sasini-text-logo.svg?fit=max\u0026auto=format\u0026n=2ec_BfA7d8lermlr\u0026q=85\u0026s=b50f3cf152432cd4635192583ceff86f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.escrivalimited.com/docs#website\",\"name\":\"Sasini App\",\"url\":\"https://docs.escrivalimited.com/docs\",\"publisher\":{\"@id\":\"https://docs.escrivalimited.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.escrivalimited.com/docs/getting-started/profile#webpage\",\"url\":\"https://docs.escrivalimited.com/docs/getting-started/profile\",\"name\":\"Authentication Lifecycle\",\"dateModified\":\"2026-04-09T13:46:18.263Z\",\"isPartOf\":{\"@id\":\"https://docs.escrivalimited.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://docs.escrivalimited.com/docs/getting-started/profile#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.escrivalimited.com/docs/getting-started/profile#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sasini App\",\"item\":\"https://docs.escrivalimited.com/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication Lifecycle\",\"item\":\"https://docs.escrivalimited.com/docs/getting-started/profile\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.escrivalimited.com/docs/getting-started/profile#article\",\"headline\":\"Authentication Lifecycle\",\"name\":\"Authentication Lifecycle\",\"url\":\"https://docs.escrivalimited.com/docs/getting-started/profile\",\"mainEntityOfPage\":{\"@id\":\"https://docs.escrivalimited.com/docs/getting-started/profile#webpage\"},\"dateModified\":\"2026-04-09T13:46:18.263Z\",\"publisher\":{\"@id\":\"https://docs.escrivalimited.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.escrivalimited.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sasini App\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sasini App","nav":{"global":null,"tabs":[{"tab":"System Users","groups":[{"group":"System Overview","pages":[{"title":"Welcome to Sasini App","description":"The digital heartbeat of Kenya's agricultural future. Unifying 30,000+ farmers, supply chains, and automated backend APIs into a single, seamless ecosystem.","icon":"house","mode":"wide","href":""}]},{"group":"Getting Started","pages":[{"title":"Authentication Lifecycle","icon":"shield-check","href":"/getting-started/profile"}]},{"group":"Produce \u0026 Financials","pages":[{"title":"Deliveries \u0026 Live Tracking","icon":"truck","description":null,"href":"/produce/deliveries"},{"title":"Payments \u0026 Digital Receipts","icon":"file-invoice-dollar","href":"/produce/payments"}]},{"group":"Farm Management Logistics","pages":[{"title":"Farm Inputs \u0026 Agri Shop","icon":"store","href":"/farm/inputs"},{"title":"Pickups \u0026 Live Tracking","icon":"truck","href":"/farm/pickups"},{"title":"Pest \u0026 Disease Reporting","icon":"bug","href":"/farm/pests"}]},{"group":"AI, Insights \u0026 Weather","pages":[{"title":"Sasini AI Assistant","icon":"robot","href":"/info/sasini-ai"},{"title":"Live Weather \u0026 Alerts","icon":"cloud-sun","href":"/info/weather"},{"title":"News \u0026 Market Rates","icon":"newspaper","href":"/info/news-markets"}]},{"group":"Account \u0026 Support","pages":[{"title":"Profile \u0026 Settings","icon":"user-gear","href":"/support/settings"},{"title":"External Resources","icon":"book-open-reader","href":"/resources/externals"}]}]}]},"basePath":"","title":"Authentication Lifecycle - Sasini App","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-B_-GSaTf.js","lightbox-handle-r17bVUz3.js"]}