Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 51s
Improve logging in the register-passkey-options and log-requests middleware to provide detailed insights into request handling. Add user-agent analysis, IP address logging, and mobile/desktop detection to aid in troubleshooting. This update aims to enhance the clarity of request logs and support better debugging during the Passkey registration process.
58 lines
2.1 KiB
JavaScript
58 lines
2.1 KiB
JavaScript
/**
|
|
* Globales Request-Logging für Debugging
|
|
* Loggt alle Requests, besonders Passkey-relevante Endpoints
|
|
*/
|
|
|
|
export default defineEventHandler((event) => {
|
|
const url = getRequestURL(event)
|
|
const method = getMethod(event)
|
|
const path = url.pathname
|
|
const origin = getHeader(event, 'origin')
|
|
const userAgent = getHeader(event, 'user-agent')
|
|
const ip = getHeader(event, 'x-forwarded-for') || getHeader(event, 'x-real-ip') || 'unknown'
|
|
|
|
// Logge nur Passkey-relevante Endpoints (um Logs nicht zu überfluten)
|
|
const passkeyEndpoints = [
|
|
'/api/auth/register-passkey',
|
|
'/api/auth/register-passkey-options',
|
|
'/api/auth/passkeys/registration-options',
|
|
'/api/auth/passkeys/register',
|
|
'/api/auth/passkeys/authentication-options',
|
|
'/api/auth/passkeys/login',
|
|
'/api/auth/passkeys/recovery'
|
|
]
|
|
|
|
const isPasskeyEndpoint = passkeyEndpoints.some(ep => path.startsWith(ep))
|
|
|
|
if (isPasskeyEndpoint) {
|
|
const timestamp = new Date().toISOString()
|
|
const isMobile = /Mobile|Android|iPhone|iPad/i.test(userAgent || '')
|
|
|
|
console.log('')
|
|
console.log('─'.repeat(80))
|
|
console.log(`[REQUEST] ${timestamp} ${method} ${path}`)
|
|
console.log(`[REQUEST] Origin: ${origin || 'none'}`)
|
|
console.log(`[REQUEST] IP: ${ip}`)
|
|
console.log(`[REQUEST] User-Agent: ${userAgent?.substring(0, 150) || 'none'}`)
|
|
console.log(`[REQUEST] Is Mobile: ${isMobile ? '✅ JA' : '❌ NEIN'}`)
|
|
|
|
// Spezielle Logs für Cross-Device
|
|
if (path.includes('register-passkey') && method === 'POST') {
|
|
console.log(`[REQUEST] 🔑 PASSKEY REGISTRATION REQUEST`)
|
|
if (isMobile) {
|
|
console.log(`[REQUEST] ✅ Request kommt vom Smartphone!`)
|
|
} else {
|
|
console.log(`[REQUEST] ⚠️ Request kommt NICHT vom Smartphone (Desktop-Browser?)`)
|
|
}
|
|
}
|
|
|
|
if (path.includes('register-passkey') && method === 'OPTIONS') {
|
|
console.log(`[REQUEST] 🔧 OPTIONS Preflight für Passkey Registration`)
|
|
console.log(`[REQUEST] ⚠️ Wenn dieser Request vom Smartphone kommt, sollte der User-Agent Mobile/Android/iPhone enthalten`)
|
|
}
|
|
|
|
console.log('─'.repeat(80))
|
|
console.log('')
|
|
}
|
|
})
|