@zestic/oauth-core
Version:
Framework-agnostic OAuth authentication library with support for multiple OAuth flows
52 lines • 1.6 kB
TypeScript
/**
* Magic Link Service
* Handles sending magic links via email with OAuth integration
*/
import type { SendMagicLinkInput, MagicLinkResponse, ExtendedOAuthAdapters, MagicLinkConfig, MagicLinkToken, ServiceResult } from '../types/ServiceTypes';
export declare class MagicLinkService {
private adapters;
private config;
private stateValidator;
constructor(adapters: ExtendedOAuthAdapters, config: MagicLinkConfig);
/**
* Send a magic link to the specified email address
*/
sendMagicLink(input: SendMagicLinkInput): Promise<MagicLinkResponse>;
/**
* Validate magic link input parameters
*/
private validateMagicLinkInput;
/**
* Generate a magic link token
*/
private generateMagicLinkToken;
/**
* Generate a secure random token
*/
private generateSecureToken;
/**
* Store magic link token with expiration
*/
private storeMagicLinkToken;
/**
* Store PKCE challenge for later use in OAuth flow
*/
private storePKCEChallenge;
/**
* Build the magic link URL
*/
private buildMagicLinkUrl;
/**
* Simple email validation - ReDoS safe implementation
*/
private isValidEmail;
/**
* Validate and retrieve magic link token
*/
validateMagicLinkToken(token: string): Promise<ServiceResult<MagicLinkToken>>;
}
/**
* Factory function to create magic link service
*/
export declare function createMagicLinkService(adapters: ExtendedOAuthAdapters, config: MagicLinkConfig): MagicLinkService;
//# sourceMappingURL=MagicLinkService.d.ts.map