feat: stabilize admin dashboard, refactor group management, implement PWA, and fix routing
This commit is contained in:
@@ -1,25 +1,36 @@
|
||||
import jwt from 'jsonwebtoken'
|
||||
import { H3Event, createError } from 'h3'
|
||||
|
||||
const JWT_SECRET = process.env.NUXT_JWT_SECRET || 'your-super-secret-jwt-key'
|
||||
|
||||
export interface AuthUser {
|
||||
id: string
|
||||
email: string
|
||||
username: string
|
||||
displayName?: string
|
||||
role?: string
|
||||
}
|
||||
|
||||
export function generateToken(user: AuthUser): string {
|
||||
const config = useRuntimeConfig()
|
||||
const secret = config.jwtSecret || 'your-super-secret-jwt-key'
|
||||
|
||||
return jwt.sign(
|
||||
{ id: user.id, email: user.email, username: user.username, role: user.role || 'user' },
|
||||
JWT_SECRET,
|
||||
{
|
||||
id: user.id,
|
||||
email: user.email,
|
||||
username: user.username,
|
||||
displayName: user.displayName,
|
||||
role: user.role || 'user'
|
||||
},
|
||||
secret,
|
||||
{ expiresIn: '7d' }
|
||||
)
|
||||
}
|
||||
|
||||
export function verifyToken(token: string): AuthUser {
|
||||
return jwt.verify(token, JWT_SECRET) as AuthUser
|
||||
const config = useRuntimeConfig()
|
||||
const secret = config.jwtSecret || 'your-super-secret-jwt-key'
|
||||
|
||||
return jwt.verify(token, secret) as AuthUser
|
||||
}
|
||||
|
||||
export function getAuthUser(event: H3Event): AuthUser | null {
|
||||
|
||||
Reference in New Issue
Block a user