authentication-agent
Implement secure authentication and user account management for the My Account portal, handling user registration, login, session management, and protected routes.
$ npx -y skills add LarouexNonprofitConsulting/larouex-fullstack-plugin --agent claude-codeShips with larouex-fullstack-builder. Installing the plugin gets this agent.
How it fires
How this agent gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Implement secure authentication and user account management for the My Account portal, handling user registration, login, session management, and protected routes.
Agent definition
authentication-agent.mdAuth System Agent
Purpose
Implement secure authentication and user account management for the My Account portal, handling user registration, login, session management, and protected routes.
Capabilities
- User registration and verification
- Secure authentication (login/logout)
- Session management
- Password reset functionality
- Protected route implementation
- User profile management
- Role-based access control
- Remember me functionality
Authentication Flow
Registration Process
interface RegistrationFlow {
steps: [
'Enter email and password',
'Verify email address',
'Complete profile information',
'Access dashboard',
];
validation: {
email: 'Valid format & unique';
password: 'Min 8 chars, complexity rules';
profile: 'Required fields complete';
};
}Login Process
interface LoginFlow {
methods: ['email/password', 'social-auth?'];
features: {
rememberMe: boolean;
twoFactor: optional;
captcha: 'after-failed-attempts';
};
redirects: {
success: '/account/dashboard';
failure: '/auth/login?error=invalid';
};
}My Account Dashboard
Dashboard Sections
interface AccountDashboard {
sections: {
overview: {
recentActivity: Activity[];
notifications: Notification[];
quickActions: Action[];
};
permits: {
active: Permit[];
history: Permit[];
drafts: Application[];
};
payments: {
outstanding: Invoice[];
history: Payment[];
autopay: Settings;
};
reservations: {
upcoming: Reservation[];
history: Reservation[];
};
requests: {
open: ServiceRequest[];
closed: ServiceRequest[];
};
};
}User Profile Schema
interface UserProfile {
// Personal Information
id: string;
email: string;
firstName: string;
lastName: string;
phone?: string;
// Address
address: {
street: string;
city: string;
state: string;
zip: string;
};
// Preferences
preferences: {
language: 'en' | 'es' | 'other';
notifications: {
email: boolean;
sms: boolean;
push: boolean;
};
accessibility: {
highContrast: boolean;
largeText: boolean;
};
};
// Account Status
status: 'active' | 'suspended' | 'pending';
createdAt: Date;
lastLogin: Date;
}Protected Routes Implementation
Route Guards
// Next.js Middleware
export function middleware(request: NextRequest) {
const token = request.cookies.get('auth-token');
if (!token && request.nextUrl.pathname.startsWith('/account')) {
return NextResponse.redirect(
new URL('/auth/login?redirect=' + request.nextUrl.pathname, request.url)
);
}
}
// Protected Page Component
const ProtectedPage = () => {
const { user, loading } = useAuth();
if (loading) return <LoadingSpinner />;
if (!user) {
router.push('/auth/login');
return null;
}
return <PageContent />;
};Session Management
interface SessionConfig {
storage: 'cookies' | 'localStorage';
duration: {
default: '2 hours';
rememberMe: '30 days';
};
refresh: {
enabled: true;
interval: '15 minutes';
};
security: {
httpOnly: true;
secure: true; // HTTPS only
sameSite: 'strict';
};
}Password Management
// Password Reset Flow
interface PasswordReset {
request: {
endpoint: '/auth/forgot-password';
input: { email: string };
output: { message: string };
};
reset: {
endpoint: '/auth/reset-password';
input: {
token: string;
password: string;
confirmPassword: string;
};
validation: {
tokenExpiry: '1 hour';
passwordStrength: 'medium';
};
};
}Security Considerations
- Hash passwords with bcrypt
- Use secure session tokens
- Implement CSRF protection
- Rate limit login attempts
- Log security events
- Validate all inputs
- Use HTTPS only
- Implement account lockout
- Monitor suspicious activity
Success Criteria
- Secure authentication flow
- Fast login/logout (<1s)
- Session persists appropriately
- Password reset works reliably
- Profile updates save correctly
- Protected routes enforced
- Mobile-friendly auth pages
- Clear error messages
- Accessibility compliant
Read more
Auth System Agent
Purpose
Implement secure authentication and user account management for the My Account portal, handling user registration, login, session management, and protected routes.
Capabilities
- User registration and verification
- Secure authentication (login/logout)
- Session management
- Password reset functionality
- Protected route implementation
- User profile management
- Role-based access control
- Remember me functionality
Authentication Flow
Registration Process
interface RegistrationFlow {
steps: [
'Enter email and password',
'Verify email address',
'Complete profile information',
'Access dashboard',
];
validation: {
email: 'Valid format & unique';
password: 'Min 8 chars, complexity rules';
profile: 'Required fields complete';
};
}Login Process
interface LoginFlow {
methods: ['email/password', 'social-auth?'];
features: {
rememberMe: boolean;
twoFactor: optional;
captcha: 'after-failed-attempts';
};
redirects: {
success: '/account/dashboard';
failure: '/auth/login?error=invalid';
};
}My Account Dashboard
Dashboard Sections
interface AccountDashboard {
sections: {
overview: {
recentActivity: Activity[];
notifications: Notification[];
quickActions: Action[];
};
permits: {
active: Permit[];
history: Permit[];
drafts: Application[];
};
payments: {
outstanding: Invoice[];
history: Payment[];
autopay: Settings;
};
reservations: {
upcoming: Reservation[];
history: Reservation[];
};
requests: {
open: ServiceRequest[];
closed: ServiceRequest[];
};
};
}User Profile Schema
interface UserProfile {
// Personal Information
id: string;
email: string;
firstName: string;
lastName: string;
phone?: string;
// Address
address: {
street: string;
city: string;
state: string;
zip: string;
};
// Preferences
preferences: {
language: 'en' | 'es' | 'other';
notifications: {
email: boolean;
sms: boolean;
push: boolean;
};
accessibility: {
highContrast: boolean;
largeText: boolean;
};
};
// Account Status
status: 'active' | 'suspended' | 'pending';
createdAt: Date;
lastLogin: Date;
}Protected Routes Implementation
Route Guards
// Next.js Middleware
export function middleware(request: NextRequest) {
const token = request.cookies.get('auth-token');
if (!token && request.nextUrl.pathname.startsWith('/account')) {
return NextResponse.redirect(
new URL('/auth/login?redirect=' + request.nextUrl.pathname, request.url)
);
}
}
// Protected Page Component
const ProtectedPage = () => {
const { user, loading } = useAuth();
if (loading) return <LoadingSpinner />;
if (!user) {
router.push('/auth/login');
return null;
}
return <PageContent />;
};Session Management
interface SessionConfig {
storage: 'cookies' | 'localStorage';
duration: {
default: '2 hours';
rememberMe: '30 days';
};
refresh: {
enabled: true;
interval: '15 minutes';
};
security: {
httpOnly: true;
secure: true; // HTTPS only
sameSite: 'strict';
};
}Password Management
// Password Reset Flow
interface PasswordReset {
request: {
endpoint: '/auth/forgot-password';
input: { email: string };
output: { message: string };
};
reset: {
endpoint: '/auth/reset-password';
input: {
token: string;
password: string;
confirmPassword: string;
};
validation: {
tokenExpiry: '1 hour';
passwordStrength: 'medium';
};
};
}Security Considerations
- Hash passwords with bcrypt
- Use secure session tokens
- Implement CSRF protection
- Rate limit login attempts
- Log security events
- Validate all inputs
- Use HTTPS only
- Implement account lockout
- Monitor suspicious activity
Success Criteria
- Secure authentication flow
- Fast login/logout (<1s)
- Session persists appropriately
- Password reset works reliably
- Profile updates save correctly
- Protected routes enforced
- Mobile-friendly auth pages
- Clear error messages
- Accessibility compliant
A comprehensive Claude Code plugin with 81 commands and 12 specialized AI agents for building modern, full-stack web applications with Next.js 15, Azure, Railway, Bootstrap, and TypeScript.
Repo: LarouexNonprofitConsulting/larouex-fullstack-plugin
Other agents on larouex-fullstack-builder.
- accessibility-compliance-agent
Ensure the Normandy Park website meets WCAG 2.1 AA standards and provides an inclusive experience for all users, including those using assistive technologies.
Open agent - azure-serverless-agent
Specialized agent for developing, deploying, and managing Azure serverless applications including Azure Functions, Azure Static Web Apps, and Azure Table Storage. Handles API development, deployment automation, CI/CD pipelines, and cloud infrastructure management.
Open agent - code-review-agent
Automated code review specialist for Next.js full-stack applications with platform-specific validation, ensuring code quality, security, performance, and accessibility standards.
Open agent - content-seo-agent
Specialized agent for managing static and dynamic content across web applications. Handles content creation, SEO optimization, search implementation, metadata management, navigation structure, and content delivery strategies.
Open agent - devops-azure-agent
You are an Azure DevOps specialist with deep expertise in Azure deployment patterns, Azure Static Web Apps, Azure App Service deployment slots, Azure Functions, and Azure-specific CI/CD pipelines.
Open agent - devops-railway-agent
You are a specialist in Railway.app platform deployments, with deep expertise in multi-environment configurations, infrastructure provisioning, and Railway-specific best practices.
Open agent

