@alore/auth-react-native-sdk
Version:
React Native SDK for Alore Auth
98 lines (90 loc) • 2.66 kB
text/typescript
import {
PasskeyCreateRequest,
PasskeyGetRequest,
} from 'react-native-passkey/lib/typescript/PasskeyTypes';
export interface SocialProvider {
id: string;
authProviderConfigId: string;
providerName: string;
clientId: string;
enabled?: boolean;
createdAt: string;
updatedAt?: string;
}
export interface SocialProvider {
providerName: string;
clientId: string;
enabled?: boolean;
}
/**
* Configuration options for Auth Provider.
*
* @property rpDomain - Optional relying party domain, used for passkey.
* @property locale - Optional locale for translation.
* @property emailTemplate - Optional email template for authentication-related emails.
* @property requireEmailVerification - Optional boolean to require email verification.
* @property requireUsername - Optional boolean to require username.
* @property passwordMinLength - Optional number for password minimum length.
* @property enablePasskeys - Optional boolean to enable passkeys.
* @property socialLoginEnabled - Optional boolean to enable social login.
* @property privacyPolicyUrl - Optional string for privacy policy URL.
* @property termsOfServiceUrl - Optional string for terms of service URL.
* @property logoUrl - Optional string for logo URL.
* @property socialProviders - Optional social login providers.
*/
export interface AuthProviderConfig {
rpDomain?: string;
locale?: 'pt' | 'en';
emailTemplate?: string;
requireEmailVerification?: boolean;
requireUsername?: boolean;
passwordMinLength?: number;
enablePasskeys?: boolean;
socialLoginEnabled?: boolean;
privacyPolicyUrl?: string;
termsOfServiceUrl?: string;
logoUrl?: string;
socialProviders?: SocialProvider[];
}
type SessionUser = {
createdAt: string;
device: string;
deviceCreatedAt: string;
email: string;
id: string;
lastLogin: string | null;
lastTransaction: string | null;
nickname: string;
status: string;
accessToken: string;
refreshToken: string;
};
export type TwoFactorAuth = {
id: string;
name: string | null;
twoFaTypeId: number;
};
export interface AuthMachineContext {
userId?: string;
authProviderConfigs?: AuthProviderConfig;
salt?: string;
error?: Error;
active2fa?: TwoFactorAuth[];
sessionId?: string;
registerUser?: {
email: string;
nickname: string;
salt?: string;
};
googleOtpCode?: string;
googleUser?: { email: string; nickname: string };
sessionUser?: SessionUser;
CCRPublicKey?: { publicKey: PasskeyGetRequest };
RCRPublicKey?: { publicKey: PasskeyCreateRequest };
credentialEmail?: string;
isFirstLogin?: boolean;
}
interface Error {
type: string;
message: string;
}