ST-cmovs80c1: POST /api/internal/push/send met constant-time Bearer check
Route: 503 als INTERNAL_PUSH_SECRET uitstaat, 401 bij verkeerd secret (timingSafeEqual), 400 bij invalid JSON, 422 bij Zod-fout, 204 bij succes. push-server.ts: env-import vervangen door process.env om SESSION_SECRET validatie tijdens build te omzeilen. Tests aangepast. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
353d2dff8a
commit
39484551e2
4 changed files with 134 additions and 14 deletions
|
|
@ -2,7 +2,6 @@ import 'server-only'
|
|||
|
||||
import webpush from 'web-push'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { env } from '@/lib/env'
|
||||
|
||||
export type PushPayload = {
|
||||
title: string
|
||||
|
|
@ -12,15 +11,15 @@ export type PushPayload = {
|
|||
}
|
||||
|
||||
const vapidReady =
|
||||
!!env.NEXT_PUBLIC_VAPID_PUBLIC_KEY &&
|
||||
!!env.VAPID_PRIVATE_KEY &&
|
||||
!!env.VAPID_SUBJECT
|
||||
!!process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY &&
|
||||
!!process.env.VAPID_PRIVATE_KEY &&
|
||||
!!process.env.VAPID_SUBJECT
|
||||
|
||||
if (vapidReady) {
|
||||
webpush.setVapidDetails(
|
||||
env.VAPID_SUBJECT!,
|
||||
env.NEXT_PUBLIC_VAPID_PUBLIC_KEY!,
|
||||
env.VAPID_PRIVATE_KEY!,
|
||||
process.env.VAPID_SUBJECT!,
|
||||
process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY!,
|
||||
process.env.VAPID_PRIVATE_KEY!,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue