validate method
Implementation
Map<String, dynamic> validate() {
final errors = <String>[];
final warnings = <String>[];
// Required database configuration
if (table.isEmpty) errors.add('AUTH_TABLE is required');
if (emailColumn.isEmpty) errors.add('AUTH_EMAIL_COLUMN is required');
if (passwordColumn.isEmpty) errors.add('AUTH_PASSWORD_COLUMN is required');
// Provider configuration warnings
if (!isGoogleConfigured) {
warnings.add(
'Google OAuth not configured (GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET required)');
}
if (!isGitHubConfigured) {
warnings.add(
'GitHub OAuth not configured (GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET required)');
}
if (!isFacebookConfigured) {
warnings.add(
'Facebook OAuth not configured (FACEBOOK_CLIENT_ID and FACEBOOK_CLIENT_SECRET required)');
}
if (!isAppleConfigured) {
warnings.add(
'Apple Sign In not configured (APPLE_CLIENT_ID, APPLE_TEAM_ID, APPLE_KEY_ID, and APPLE_PRIVATE_KEY required)');
}
// JWT security warning
if (jwtSecret == null ||
jwtSecret!.isEmpty ||
jwtSecret == 'your-default-jwt-secret-change-in-production') {
warnings
.add('Using default JWT secret - change JWT_SECRET in production');
}
return {
'valid': errors.isEmpty,
'errors': errors,
'warnings': warnings,
'configuredProviders': configuredProviders,
};
}