Files
harheimertc/server/api/auth/register-passkey-options.options.js
Torsten Schulz (local) 29ef644581
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 45s
Enhance debug logging and Cross-Device support for Passkey Registration
Update the registrieren.vue component to include detailed debug statements for the Cross-Device authentication flow, specifically during QR-Code generation. Improve logging in the register-passkey-options and register-passkey APIs to capture request details such as user agent and IP address, aiding in troubleshooting. Additionally, introduce a new function to retrieve pre-registration data, enhancing the overall registration process and compliance with Cross-Device requirements.
2026-01-08 23:27:11 +01:00

40 lines
1.5 KiB
JavaScript

import { getWebAuthnConfig } from '../../utils/webauthn-config.js'
export default defineEventHandler(async (event) => {
const requestOrigin = getHeader(event, 'origin')
const { origin: webauthnOrigin } = getWebAuthnConfig()
const userAgent = getHeader(event, 'user-agent')
const ip = getHeader(event, 'x-forwarded-for') || getHeader(event, 'x-real-ip') || 'unknown'
console.log('[DEBUG] ===== OPTIONS preflight for /api/auth/register-passkey-options =====')
console.log('[DEBUG] OPTIONS Request Details:', {
origin: requestOrigin || 'none',
webauthnOrigin,
userAgent: userAgent?.substring(0, 100) || 'none',
ip,
timestamp: new Date().toISOString(),
note: 'OPTIONS Preflight für Passkey Registration Options'
})
// CORS-Header für Cross-Device Authentication
const allowedOrigin = requestOrigin || webauthnOrigin
if (allowedOrigin) {
setHeader(event, 'Access-Control-Allow-Origin', allowedOrigin)
setHeader(event, 'Access-Control-Allow-Credentials', 'true')
setHeader(event, 'Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
setHeader(event, 'Access-Control-Allow-Headers', 'Content-Type, Authorization, Origin, X-Requested-With')
setHeader(event, 'Access-Control-Max-Age', '86400') // 24 Stunden Cache für Preflight
console.log('[DEBUG] CORS headers set for OPTIONS', {
origin: allowedOrigin,
requestOrigin,
webauthnOrigin
})
}
// OPTIONS Preflight-Request: 204 No Content
setResponseStatus(event, 204)
return null
})