trust host for reverse proxy in prod, general cleanup
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				CI / update (push) Failing after 1m27s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	CI / update (push) Failing after 1m27s
				
			This commit is contained in:
		@@ -1,88 +0,0 @@
 | 
				
			|||||||
# Development Authentication Bypass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This document explains how to safely disable authentication during development.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🔐 Security Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The authentication bypass is designed with multiple layers of security:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. **Development Mode Only**: Only works when `vite dev` is running
 | 
					 | 
				
			||||||
2. **Explicit Opt-in**: Requires setting `DEV_DISABLE_AUTH=true` 
 | 
					 | 
				
			||||||
3. **Production Protection**: Build fails if enabled in production mode
 | 
					 | 
				
			||||||
4. **Environment Isolation**: Uses local environment files (gitignored)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🚀 Usage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 1. Create Local Environment File
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Create `.env.local` (this file is gitignored):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# Copy from example
 | 
					 | 
				
			||||||
cp .env.local.example .env.local
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 2. Enable Development Bypass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Edit `.env.local` and set:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```env
 | 
					 | 
				
			||||||
DEV_DISABLE_AUTH=true
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 3. Start Development Server
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
pnpm run dev
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You'll see a warning in the console:
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
🚨 AUTH DISABLED: Development mode with DEV_DISABLE_AUTH=true
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 4. Access Protected Routes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Protected routes (`/rezepte/edit/*`, `/rezepte/add`) will now be accessible without authentication.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🛡️ Security Guarantees
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Production Safety
 | 
					 | 
				
			||||||
- **Build-time Check**: Production builds fail if `DEV_DISABLE_AUTH=true`
 | 
					 | 
				
			||||||
- **Runtime Check**: Double verification using `dev` flag from `$app/environment`
 | 
					 | 
				
			||||||
- **No Environment Leakage**: Uses `process.env` (server-only) not client environment
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Development Isolation  
 | 
					 | 
				
			||||||
- **Gitignored Files**: `.env.local` is never committed
 | 
					 | 
				
			||||||
- **Example Template**: `.env.local.example` shows safe defaults
 | 
					 | 
				
			||||||
- **Clear Warnings**: Console warns when auth is disabled
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🧪 Testing the Security
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Test Production Build Safety
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# This should FAIL with security error
 | 
					 | 
				
			||||||
DEV_DISABLE_AUTH=true pnpm run build
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Test Normal Production Build
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# This should succeed
 | 
					 | 
				
			||||||
pnpm run build
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🔄 Re-enabling Authentication
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Set in `.env.local`:
 | 
					 | 
				
			||||||
```env
 | 
					 | 
				
			||||||
DEV_DISABLE_AUTH=false
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Or simply delete/rename the `.env.local` file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## ⚠️ Important Notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- **Never** commit `.env.local` to git
 | 
					 | 
				
			||||||
- **Never** set `DEV_DISABLE_AUTH=true` in production environment
 | 
					 | 
				
			||||||
- The bypass provides a mock session with `rezepte_users` group access
 | 
					 | 
				
			||||||
- All other authentication flows (signin pages, etc.) remain unchanged
 | 
					 | 
				
			||||||
							
								
								
									
										3318
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3318
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"name": "sk-recipes-test",
 | 
						"name": "homepage",
 | 
				
			||||||
	"version": "0.0.1",
 | 
						"version": "1.0.0",
 | 
				
			||||||
	"private": true,
 | 
						"private": true,
 | 
				
			||||||
	"type": "module",
 | 
						"type": "module",
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,4 +26,5 @@ export const { handle, signIn, signOut } = SvelteKitAuth({
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						trustHost: true, // needed for reverse proxy setups
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user