Files
FeelAloud/backend/README.md
2026-07-22 22:54:03 +02:00

2.0 KiB

FeelAloud Backend

Backend for real accounts:

  • E-Mail and password registration/login
  • Sign in with Apple ID-token verification
  • Google ID-token verification
  • JWT session tokens for the app
  • Premium entitlement storage prepared for App Store Server verification

Setup

  1. Install dependencies:

    npm install
    
  2. Create PostgreSQL database and enable UUID generation:

    create extension if not exists pgcrypto;
    
  3. Copy config:

    cp .env.example .env
    
  4. Fill .env:

    • JWT_SECRET: at least 32 random characters
    • APPLE_CLIENT_ID: app bundle id, currently de.feelaloud
    • GOOGLE_CLIENT_IDS: Google OAuth iOS/Web client IDs, comma-separated
  5. Initialize DB:

    npm run db:init
    
  6. Start local API:

    npm run dev
    

Endpoints

  • GET /health
  • POST /auth/email/register
  • POST /auth/email/login
  • POST /auth/email/change-password
  • POST /auth/apple
  • POST /auth/google
  • GET /me
  • GET /premium/status
  • POST /premium/app-store/transaction

iOS Configuration

In the app, set the backend URL in Settings -> Profil once that UI is wired, or set authBackendURL in UserDefaults during testing:

UserDefaults.standard.set("http://localhost:8080", forKey: "authBackendURL")

For local device testing use your Mac's LAN IP instead of localhost.

Required Apple/Google Console Setup

Apple:

  • Paid Apple Developer account
  • App capability: Sign in with Apple
  • Bundle ID: de.feelaloud
  • For server/web flows: Services ID and private key if you later exchange authorization codes server-side

Google:

  • Google Cloud project
  • OAuth consent screen
  • iOS OAuth client for bundle ID de.feelaloud
  • Add the resulting client ID to GOOGLE_CLIENT_IDS

Premium:

  • Digital premium features must stay on StoreKit/In-App Purchase.
  • PayPal is not the payment rail for iOS digital premium unlocks.
  • Server-side transaction verification can be completed with App Store Server API once App Store Connect keys are available.