Fix Apple Sign In: update bundle IDs from old com.tt.honeyDue.* to com.myhoneydue.*
The iOS app was renamed (MyCrib → Casera → honeyDue) and the bundle ID
was updated to com.myhoneydue.honeyDue (release) / .dev (debug), but
APPLE_CLIENT_ID and APNS_TOPIC across env templates and k3s configs
still pointed at the old com.tt.honeyDue.honeyDueDev value. This made
verifyAudience reject every Apple identity token (aud claim mismatch).
Updated:
- deploy/prod.env.example: bundle ID + comment that empty client_id
rejects all tokens with DEBUG=false
- .env.example: add Sign in with Apple block (was missing entirely)
- deploy-k3s{,-dev}/config.yaml.example: apple_auth.client_id default
- deploy-k3s-dev/scripts/00-init.sh: same
- docker-compose.dev.yml: APNS_TOPIC fallback
- docs/deployment/10-secrets-config.md: doc reference
The live deploy/prod.env and local .env are .gitignored — they were
edited in place and need to ship via deploy_prod.sh to take effect.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -28,12 +28,22 @@ EMAIL_HOST_USER=your-email@gmail.com
|
|||||||
EMAIL_HOST_PASSWORD=your-app-password
|
EMAIL_HOST_PASSWORD=your-app-password
|
||||||
DEFAULT_FROM_EMAIL=honeyDue <noreply@honeyDue.treytartt.com>
|
DEFAULT_FROM_EMAIL=honeyDue <noreply@honeyDue.treytartt.com>
|
||||||
|
|
||||||
|
# Sign in with Apple
|
||||||
|
# APPLE_CLIENT_ID must equal the iOS bundle ID of the build hitting this
|
||||||
|
# backend. The Apple identity-token `aud` claim is checked against it
|
||||||
|
# (see internal/services/apple_auth.go::verifyAudience). With DEBUG=false
|
||||||
|
# an empty value rejects every Apple token.
|
||||||
|
# Release builds: com.myhoneydue.honeyDue
|
||||||
|
# Debug builds: com.myhoneydue.honeyDue.dev
|
||||||
|
APPLE_CLIENT_ID=com.myhoneydue.honeyDue.dev
|
||||||
|
APPLE_TEAM_ID=V3PF3M6B6U
|
||||||
|
|
||||||
# APNs Settings (iOS Push Notifications)
|
# APNs Settings (iOS Push Notifications)
|
||||||
# Direct APNs integration - no external push server needed
|
# Direct APNs integration - no external push server needed
|
||||||
APNS_AUTH_KEY_PATH=/path/to/AuthKey_XXXXXX.p8
|
APNS_AUTH_KEY_PATH=/path/to/AuthKey_XXXXXX.p8
|
||||||
APNS_AUTH_KEY_ID=XXXXXXXXXX
|
APNS_AUTH_KEY_ID=XXXXXXXXXX
|
||||||
APNS_TEAM_ID=XXXXXXXXXX
|
APNS_TEAM_ID=XXXXXXXXXX
|
||||||
APNS_TOPIC=com.tt.honeyDue
|
APNS_TOPIC=com.myhoneydue.honeyDue.dev
|
||||||
APNS_PRODUCTION=false # Set to true for production APNs, false for sandbox
|
APNS_PRODUCTION=false # Set to true for production APNs, false for sandbox
|
||||||
|
|
||||||
# FCM Settings (Android Push Notifications)
|
# FCM Settings (Android Push Notifications)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ email:
|
|||||||
push:
|
push:
|
||||||
apns_key_id: ""
|
apns_key_id: ""
|
||||||
apns_team_id: ""
|
apns_team_id: ""
|
||||||
apns_topic: com.tt.honeyDue
|
apns_topic: com.myhoneydue.honeyDue.dev
|
||||||
apns_production: false
|
apns_production: false
|
||||||
apns_use_sandbox: true # Sandbox for dev
|
apns_use_sandbox: true # Sandbox for dev
|
||||||
|
|
||||||
@@ -85,8 +85,9 @@ tls:
|
|||||||
# If mode=cloudflare, create secrets/cloudflare-origin.crt and .key
|
# If mode=cloudflare, create secrets/cloudflare-origin.crt and .key
|
||||||
|
|
||||||
# --- Apple Auth / IAP (optional) ---
|
# --- Apple Auth / IAP (optional) ---
|
||||||
|
# client_id MUST equal the iOS Debug bundle ID for the dev backend.
|
||||||
apple_auth:
|
apple_auth:
|
||||||
client_id: ""
|
client_id: "com.myhoneydue.honeyDue.dev"
|
||||||
team_id: ""
|
team_id: ""
|
||||||
iap_key_id: ""
|
iap_key_id: ""
|
||||||
iap_issuer_id: ""
|
iap_issuer_id: ""
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ email:
|
|||||||
push:
|
push:
|
||||||
apns_key_id: "${APNS_KEY_ID}"
|
apns_key_id: "${APNS_KEY_ID}"
|
||||||
apns_team_id: "${APNS_TEAM_ID}"
|
apns_team_id: "${APNS_TEAM_ID}"
|
||||||
apns_topic: com.tt.honeyDue
|
apns_topic: com.myhoneydue.honeyDue.dev
|
||||||
apns_production: false
|
apns_production: false
|
||||||
apns_use_sandbox: true
|
apns_use_sandbox: true
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ tls:
|
|||||||
|
|
||||||
# --- Apple Auth / IAP ---
|
# --- Apple Auth / IAP ---
|
||||||
apple_auth:
|
apple_auth:
|
||||||
client_id: "com.tt.honeyDue"
|
client_id: "com.myhoneydue.honeyDue.dev"
|
||||||
team_id: "${APNS_TEAM_ID}"
|
team_id: "${APNS_TEAM_ID}"
|
||||||
iap_key_id: ""
|
iap_key_id: ""
|
||||||
iap_issuer_id: ""
|
iap_issuer_id: ""
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ email:
|
|||||||
push:
|
push:
|
||||||
apns_key_id: ""
|
apns_key_id: ""
|
||||||
apns_team_id: ""
|
apns_team_id: ""
|
||||||
apns_topic: com.tt.honeyDue
|
apns_topic: com.myhoneydue.honeyDue
|
||||||
apns_production: true
|
apns_production: true
|
||||||
apns_use_sandbox: false
|
apns_use_sandbox: false
|
||||||
|
|
||||||
@@ -100,8 +100,10 @@ admin:
|
|||||||
basic_auth_password: "" # HTTP basic auth password for admin panel
|
basic_auth_password: "" # HTTP basic auth password for admin panel
|
||||||
|
|
||||||
# --- Apple Auth / IAP (optional, leave empty if unused) ---
|
# --- Apple Auth / IAP (optional, leave empty if unused) ---
|
||||||
|
# client_id MUST equal the iOS Release bundle ID — Apple identity tokens
|
||||||
|
# are rejected if the `aud` claim doesn't match.
|
||||||
apple_auth:
|
apple_auth:
|
||||||
client_id: ""
|
client_id: "com.myhoneydue.honeyDue"
|
||||||
team_id: ""
|
team_id: ""
|
||||||
iap_key_id: ""
|
iap_key_id: ""
|
||||||
iap_issuer_id: ""
|
iap_issuer_id: ""
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ DEFAULT_FROM_EMAIL=honeyDue <noreply@honeyDue.treytartt.com>
|
|||||||
# APNS private key goes in deploy/secrets/apns_auth_key.p8
|
# APNS private key goes in deploy/secrets/apns_auth_key.p8
|
||||||
APNS_AUTH_KEY_ID=CHANGEME_APNS_KEY_ID
|
APNS_AUTH_KEY_ID=CHANGEME_APNS_KEY_ID
|
||||||
APNS_TEAM_ID=CHANGEME_APNS_TEAM_ID
|
APNS_TEAM_ID=CHANGEME_APNS_TEAM_ID
|
||||||
APNS_TOPIC=com.tt.honeyDue
|
APNS_TOPIC=com.myhoneydue.honeyDue
|
||||||
APNS_USE_SANDBOX=false
|
APNS_USE_SANDBOX=false
|
||||||
APNS_PRODUCTION=true
|
APNS_PRODUCTION=true
|
||||||
|
|
||||||
@@ -80,7 +80,11 @@ FEATURE_PDF_REPORTS_ENABLED=true
|
|||||||
FEATURE_WORKER_ENABLED=true
|
FEATURE_WORKER_ENABLED=true
|
||||||
|
|
||||||
# Optional auth/iap values
|
# Optional auth/iap values
|
||||||
APPLE_CLIENT_ID=
|
# APPLE_CLIENT_ID must equal the iOS Release bundle ID. The Apple
|
||||||
|
# identity-token `aud` claim is verified against this value
|
||||||
|
# (internal/services/apple_auth.go::verifyAudience). Leaving it empty
|
||||||
|
# with DEBUG=false rejects every Apple token as invalid audience.
|
||||||
|
APPLE_CLIENT_ID=com.myhoneydue.honeyDue
|
||||||
APPLE_TEAM_ID=
|
APPLE_TEAM_ID=
|
||||||
GOOGLE_CLIENT_ID=
|
GOOGLE_CLIENT_ID=
|
||||||
GOOGLE_ANDROID_CLIENT_ID=
|
GOOGLE_ANDROID_CLIENT_ID=
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ services:
|
|||||||
APNS_AUTH_KEY_PATH: ${APNS_AUTH_KEY_PATH}
|
APNS_AUTH_KEY_PATH: ${APNS_AUTH_KEY_PATH}
|
||||||
APNS_AUTH_KEY_ID: ${APNS_AUTH_KEY_ID}
|
APNS_AUTH_KEY_ID: ${APNS_AUTH_KEY_ID}
|
||||||
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
||||||
APNS_TOPIC: ${APNS_TOPIC:-com.tt.honeyDue}
|
APNS_TOPIC: ${APNS_TOPIC:-com.myhoneydue.honeyDue.dev}
|
||||||
APNS_USE_SANDBOX: "true"
|
APNS_USE_SANDBOX: "true"
|
||||||
FCM_SERVER_KEY: ${FCM_SERVER_KEY}
|
FCM_SERVER_KEY: ${FCM_SERVER_KEY}
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ services:
|
|||||||
APNS_AUTH_KEY_PATH: "/certs/apns_key.p8"
|
APNS_AUTH_KEY_PATH: "/certs/apns_key.p8"
|
||||||
APNS_AUTH_KEY_ID: ${APNS_AUTH_KEY_ID}
|
APNS_AUTH_KEY_ID: ${APNS_AUTH_KEY_ID}
|
||||||
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
||||||
APNS_TOPIC: ${APNS_TOPIC:-com.tt.honeyDue}
|
APNS_TOPIC: ${APNS_TOPIC:-com.myhoneydue.honeyDue.dev}
|
||||||
APNS_USE_SANDBOX: "true"
|
APNS_USE_SANDBOX: "true"
|
||||||
FCM_SERVER_KEY: ${FCM_SERVER_KEY}
|
FCM_SERVER_KEY: ${FCM_SERVER_KEY}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ APNS_AUTH_KEY_ID=DISABLED01
|
|||||||
APNS_AUTH_KEY_PATH=/secrets/apns/apns_auth_key.p8
|
APNS_AUTH_KEY_PATH=/secrets/apns/apns_auth_key.p8
|
||||||
APNS_PRODUCTION=false
|
APNS_PRODUCTION=false
|
||||||
APNS_TEAM_ID=DISABLED01
|
APNS_TEAM_ID=DISABLED01
|
||||||
APNS_TOPIC=com.tt.honeyDue
|
APNS_TOPIC=com.myhoneydue.honeyDue
|
||||||
APNS_USE_SANDBOX=false
|
APNS_USE_SANDBOX=false
|
||||||
BASE_URL=https://myhoneydue.com
|
BASE_URL=https://myhoneydue.com
|
||||||
B2_BUCKET_NAME=honeyDueProd
|
B2_BUCKET_NAME=honeyDueProd
|
||||||
|
|||||||
Reference in New Issue
Block a user