Documentation Index
Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
Use this file to discover all available pages before exploring further.
isUserOnboardingComplete
Checks if the user has completed all onboarding requirements including KYC fields and MFA setup.
This function verifies whether a user has fulfilled all necessary requirements to be considered fully onboarded:
- KYC Fields: All required Know Your Customer information fields have been provided
- MFA Authentication: User has completed any required multi-factor authentication challenges
- Recovery Codes: User has acknowledged their MFA recovery codes (if MFA is enabled)
Use this function to determine if you should direct users to complete additional onboarding steps or allow them full access to your application.
Usage
import { isUserOnboardingComplete } from '@dynamic-labs-sdk/client';
const checkUserStatus = () => {
const isComplete = isUserOnboardingComplete();
if (isComplete) {
console.log('User has completed all onboarding requirements');
} else {
console.log('User has pending onboarding requirements');
}
};
Parameters
| Parameter | Type | Description |
|---|
client | DynamicClient (optional) | The Dynamic client instance. Only required when using multiple clients. |
Returns
boolean - Returns true if onboarding is complete (no pending requirements), false if there are pending requirements.
Examples
Basic onboarding check
import { isUserOnboardingComplete } from '@dynamic-labs-sdk/client';
const handlePostLogin = () => {
const isComplete = isUserOnboardingComplete();
if (!isComplete) {
// Redirect to onboarding flow
redirectToOnboarding();
} else {
// Allow access to main application
redirectToDashboard();
}
};
Checking specific requirements
If you need to know which specific requirements are pending, you can check each requirement individually:
import {
isUserOnboardingComplete,
isUserMissingMfaAuth,
isPendingRecoveryCodesAcknowledgment,
getDefaultClient
} from '@dynamic-labs-sdk/client';
const checkOnboardingDetails = () => {
const dynamicClient = getDefaultClient();
const user = dynamicClient.user;
if (!user) {
console.log('User not logged in');
return;
}
const isComplete = isUserOnboardingComplete();
if (!isComplete) {
// Check individual requirements
const hasMissingKycFields = Boolean(user.missingFields?.length);
const needsMfaAuth = isUserMissingMfaAuth();
const needsRecoveryAcknowledgment = isPendingRecoveryCodesAcknowledgment();
if (hasMissingKycFields) {
console.log('User needs to complete KYC fields:', user.missingFields);
}
if (needsMfaAuth) {
console.log('User needs to complete MFA authentication');
}
if (needsRecoveryAcknowledgment) {
console.log('User needs to acknowledge recovery codes');
}
}
};
Listen for user changes and check onboarding
import {
isUserOnboardingComplete,
onEvent
} from '@dynamic-labs-sdk/client';
// Listen for user changes and check onboarding status
onEvent({
event: 'userChanged',
listener: ({ user }) => {
if (!user) return;
const isComplete = isUserOnboardingComplete();
console.log('Onboarding complete:', isComplete);
if (isComplete) {
// User completed all requirements, update UI
showFullAccess();
} else {
// Show onboarding prompt
showOnboardingPrompt();
}
},
});
Conditional feature access
import { isUserOnboardingComplete } from '@dynamic-labs-sdk/client';
const canAccessFeature = isUserOnboardingComplete();
if (!canAccessFeature) {
console.log('Complete your onboarding to access this feature');
redirectToOnboarding();
}
What does this check?
The function returns true only when all of the following conditions are met:
- No Missing KYC Fields:
user.missingFields is empty or undefined
- No Pending MFA Authentication: User doesn’t have the
requiresAdditionalAuth scope
- Recovery Codes Acknowledged: If MFA is enabled, user has acknowledged their recovery codes
If any of these requirements are pending, the function returns false.