Skip to content

Commit 36f7432

Browse files
committed
Replace API key auth with JWT token and improve user data management
1 parent 7275cb6 commit 36f7432

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

public/js/components/pf-header.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,25 @@ class PfHeader extends HTMLElement {
511511
}
512512

513513
updateNavbar() {
514-
const apiKey = localStorage.getItem('api_key');
515-
const username = localStorage.getItem('username') || apiKey;
516-
const isLoggedIn = !!apiKey;
514+
// Check for JWT token instead of API key
515+
const jwtToken = localStorage.getItem('jwt_token');
516+
517+
// Get user data from localStorage
518+
let userObject = null;
519+
try {
520+
const userJson = localStorage.getItem('user');
521+
if (userJson) {
522+
userObject = JSON.parse(userJson);
523+
}
524+
} catch (error) {
525+
console.error('Error parsing user object from localStorage:', error);
526+
}
527+
528+
// Get username from user object or fallback to username in localStorage
529+
const username = userObject?.username || localStorage.getItem('username') || 'User';
530+
531+
// Check if user is logged in based on JWT token
532+
const isLoggedIn = !!jwtToken;
517533

518534
// Update desktop navigation
519535
const navLinks = this.shadowRoot.querySelector('.nav-links');
@@ -717,8 +733,12 @@ class PfHeader extends HTMLElement {
717733
}
718734

719735
logout() {
720-
// Clear all localStorage items
721-
localStorage.clear();
736+
// Clear JWT token and user data
737+
localStorage.removeItem('jwt_token');
738+
localStorage.removeItem('username');
739+
localStorage.removeItem('user');
740+
localStorage.removeItem('subscription_data');
741+
localStorage.removeItem('api_key'); // Remove legacy API key if present
722742

723743
// Clear all cookies
724744
const cookies = document.cookie.split(";");

public/views/settings.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ <h3 class="danger-title">Danger Zone</h3>
7070
</div>
7171

7272
<script>
73-
// Check if user is logged in
74-
const apiKey = localStorage.getItem('api_key');
73+
// Check if user is logged in using JWT token
74+
const jwtToken = localStorage.getItem('jwt_token');
7575
const userJson = localStorage.getItem('user');
7676
let user = null;
7777

@@ -83,15 +83,16 @@ <h3 class="danger-title">Danger Zone</h3>
8383
}
8484
}
8585

86-
if (!apiKey) {
86+
if (!jwtToken) {
8787
// Redirect to login page if not logged in
8888
window.location.href = '/login';
8989
throw new Error('Not logged in');
9090
}
9191

9292
// Populate form fields
93-
document.getElementById('email').value = user?.email || apiKey;
94-
document.getElementById('display-name').value = user?.username || localStorage.getItem('username') || apiKey;
93+
const username = localStorage.getItem('username');
94+
document.getElementById('email').value = user?.email || username || '';
95+
document.getElementById('display-name').value = user?.username || username || '';
9596

9697
// Populate subscription info if available
9798
if (user?.subscription) {

0 commit comments

Comments
 (0)