|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>VPN Service - Authentication</title> |
|
|
<link rel="stylesheet" href="auth.css"> |
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> |
|
|
</head> |
|
|
<body> |
|
|
<div class="auth-container"> |
|
|
|
|
|
<div class="background-animation"> |
|
|
<div class="floating-shapes"> |
|
|
<div class="shape shape-1"></div> |
|
|
<div class="shape shape-2"></div> |
|
|
<div class="shape shape-3"></div> |
|
|
<div class="shape shape-4"></div> |
|
|
<div class="shape shape-5"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<header class="auth-header"> |
|
|
<div class="logo"> |
|
|
<i class="fas fa-shield-alt"></i> |
|
|
<h1>SecureVPN</h1> |
|
|
</div> |
|
|
<nav class="auth-nav"> |
|
|
<button class="nav-btn" id="loginNavBtn" onclick="showLogin()">Login</button> |
|
|
<button class="nav-btn" id="registerNavBtn" onclick="showRegister()">Register</button> |
|
|
</nav> |
|
|
</header> |
|
|
|
|
|
|
|
|
<main class="auth-main"> |
|
|
|
|
|
<div class="auth-form-container" id="loginForm"> |
|
|
<div class="auth-form"> |
|
|
<div class="form-header"> |
|
|
<h2>Welcome Back</h2> |
|
|
<p>Sign in to your VPN account</p> |
|
|
</div> |
|
|
|
|
|
<form id="loginFormElement" onsubmit="handleLogin(event)"> |
|
|
<div class="form-group"> |
|
|
<label for="loginField">Username or Email</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-user"></i> |
|
|
<input type="text" id="loginField" name="login" required |
|
|
placeholder="Enter username or email"> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label for="loginPassword">Password</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-lock"></i> |
|
|
<input type="password" id="loginPassword" name="password" required |
|
|
placeholder="Enter password"> |
|
|
<button type="button" class="password-toggle" onclick="togglePassword('loginPassword')"> |
|
|
<i class="fas fa-eye"></i> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-options"> |
|
|
<label class="checkbox-container"> |
|
|
<input type="checkbox" id="rememberMe"> |
|
|
<span class="checkmark"></span> |
|
|
Remember me |
|
|
</label> |
|
|
<a href="#" class="forgot-password" onclick="showForgotPassword()">Forgot password?</a> |
|
|
</div> |
|
|
|
|
|
<button type="submit" class="auth-btn primary" id="loginBtn"> |
|
|
<span class="btn-text">Sign In</span> |
|
|
<span class="btn-loader" style="display: none;"> |
|
|
<i class="fas fa-spinner fa-spin"></i> |
|
|
</span> |
|
|
</button> |
|
|
</form> |
|
|
|
|
|
<div class="form-footer"> |
|
|
<p>Don't have an account? <a href="#" onclick="showRegister()">Sign up</a></p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="auth-form-container" id="registerForm" style="display: none;"> |
|
|
<div class="auth-form"> |
|
|
<div class="form-header"> |
|
|
<h2>Create Account</h2> |
|
|
<p>Join our secure VPN service</p> |
|
|
</div> |
|
|
|
|
|
<form id="registerFormElement" onsubmit="handleRegister(event)"> |
|
|
<div class="form-group"> |
|
|
<label for="registerUsername">Username</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-user"></i> |
|
|
<input type="text" id="registerUsername" name="username" required |
|
|
placeholder="Choose a username" minlength="3" maxlength="80"> |
|
|
</div> |
|
|
<div class="field-hint">3-80 characters, letters, numbers, hyphens, and underscores only</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label for="registerEmail">Email</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-envelope"></i> |
|
|
<input type="email" id="registerEmail" name="email" required |
|
|
placeholder="Enter your email"> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label for="registerPassword">Password</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-lock"></i> |
|
|
<input type="password" id="registerPassword" name="password" required |
|
|
placeholder="Create a strong password" minlength="8"> |
|
|
<button type="button" class="password-toggle" onclick="togglePassword('registerPassword')"> |
|
|
<i class="fas fa-eye"></i> |
|
|
</button> |
|
|
</div> |
|
|
<div class="password-strength" id="passwordStrength"> |
|
|
<div class="strength-bar"> |
|
|
<div class="strength-fill"></div> |
|
|
</div> |
|
|
<div class="strength-text">Password strength</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label for="confirmPassword">Confirm Password</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-lock"></i> |
|
|
<input type="password" id="confirmPassword" name="confirmPassword" required |
|
|
placeholder="Confirm your password"> |
|
|
<button type="button" class="password-toggle" onclick="togglePassword('confirmPassword')"> |
|
|
<i class="fas fa-eye"></i> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label for="subscriptionType">Subscription Plan</label> |
|
|
<div class="subscription-options"> |
|
|
<label class="radio-option"> |
|
|
<input type="radio" name="subscriptionType" value="free" checked> |
|
|
<span class="radio-custom"></span> |
|
|
<div class="option-content"> |
|
|
<strong>Free</strong> |
|
|
<span>1 device, 10 Mbps</span> |
|
|
</div> |
|
|
</label> |
|
|
<label class="radio-option"> |
|
|
<input type="radio" name="subscriptionType" value="premium"> |
|
|
<span class="radio-custom"></span> |
|
|
<div class="option-content"> |
|
|
<strong>Premium</strong> |
|
|
<span>3 devices, 50 Mbps</span> |
|
|
</div> |
|
|
</label> |
|
|
<label class="radio-option"> |
|
|
<input type="radio" name="subscriptionType" value="enterprise"> |
|
|
<span class="radio-custom"></span> |
|
|
<div class="option-content"> |
|
|
<strong>Enterprise</strong> |
|
|
<span>10 devices, 100 Mbps</span> |
|
|
</div> |
|
|
</label> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
<label class="checkbox-container"> |
|
|
<input type="checkbox" id="agreeTerms" required> |
|
|
<span class="checkmark"></span> |
|
|
I agree to the <a href="#" target="_blank">Terms of Service</a> and <a href="#" target="_blank">Privacy Policy</a> |
|
|
</label> |
|
|
</div> |
|
|
|
|
|
<button type="submit" class="auth-btn primary" id="registerBtn"> |
|
|
<span class="btn-text">Create Account</span> |
|
|
<span class="btn-loader" style="display: none;"> |
|
|
<i class="fas fa-spinner fa-spin"></i> |
|
|
</span> |
|
|
</button> |
|
|
</form> |
|
|
|
|
|
<div class="form-footer"> |
|
|
<p>Already have an account? <a href="#" onclick="showLogin()">Sign in</a></p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="auth-form-container" id="forgotPasswordForm" style="display: none;"> |
|
|
<div class="auth-form"> |
|
|
<div class="form-header"> |
|
|
<h2>Reset Password</h2> |
|
|
<p>Enter your email to receive reset instructions</p> |
|
|
</div> |
|
|
|
|
|
<form id="forgotPasswordFormElement" onsubmit="handleForgotPassword(event)"> |
|
|
<div class="form-group"> |
|
|
<label for="forgotEmail">Email</label> |
|
|
<div class="input-group"> |
|
|
<i class="fas fa-envelope"></i> |
|
|
<input type="email" id="forgotEmail" name="email" required |
|
|
placeholder="Enter your email"> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<button type="submit" class="auth-btn primary" id="forgotPasswordBtn"> |
|
|
<span class="btn-text">Send Reset Link</span> |
|
|
<span class="btn-loader" style="display: none;"> |
|
|
<i class="fas fa-spinner fa-spin"></i> |
|
|
</span> |
|
|
</button> |
|
|
</form> |
|
|
|
|
|
<div class="form-footer"> |
|
|
<p><a href="#" onclick="showLogin()">Back to login</a></p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</main> |
|
|
|
|
|
|
|
|
<div class="alert-container" id="alertContainer"></div> |
|
|
|
|
|
|
|
|
<section class="features-section"> |
|
|
<div class="features-container"> |
|
|
<h3>Why Choose SecureVPN?</h3> |
|
|
<div class="features-grid"> |
|
|
<div class="feature-item"> |
|
|
<i class="fas fa-shield-alt"></i> |
|
|
<h4>Military-Grade Encryption</h4> |
|
|
<p>AES-256 encryption protects your data</p> |
|
|
</div> |
|
|
<div class="feature-item"> |
|
|
<i class="fas fa-globe"></i> |
|
|
<h4>Global Servers</h4> |
|
|
<p>Connect from anywhere in the world</p> |
|
|
</div> |
|
|
<div class="feature-item"> |
|
|
<i class="fas fa-bolt"></i> |
|
|
<h4>Lightning Fast</h4> |
|
|
<p>Optimized for speed and performance</p> |
|
|
</div> |
|
|
<div class="feature-item"> |
|
|
<i class="fas fa-user-secret"></i> |
|
|
<h4>No Logs Policy</h4> |
|
|
<p>Your privacy is our priority</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
</div> |
|
|
|
|
|
<script src="auth.js"></script> |
|
|
</body> |
|
|
</html> |
|
|
|
|
|
|