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
-
Install dependencies:
npm install -
Create PostgreSQL database and enable UUID generation:
create extension if not exists pgcrypto; -
Copy config:
cp .env.example .env -
Fill
.env:JWT_SECRET: at least 32 random charactersAPPLE_CLIENT_ID: app bundle id, currentlyde.feelaloudGOOGLE_CLIENT_IDS: Google OAuth iOS/Web client IDs, comma-separated
-
Initialize DB:
npm run db:init -
Start local API:
npm run dev
Endpoints
GET /healthPOST /auth/email/registerPOST /auth/email/loginPOST /auth/email/change-passwordPOST /auth/applePOST /auth/googleGET /meGET /premium/statusPOST /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.