Auto-login via token coach_web_token au lancement
- capacitor.config.ts charge coachWebToken depuis coach-ios.local.json (gitignored) - server.url devient https://coach.hypnotruck.ch/login?token=... → backend pose le cookie 1 an, redirige vers / - Au prochain lancement, le cookie tient → /login?token redirige direct vers / - coach-ios.local.json.example fourni pour setup Mac mini
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -20,6 +20,7 @@ ios/App/public/
|
|||||||
# Secrets
|
# Secrets
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
|
coach-ios.local.json
|
||||||
*.p8
|
*.p8
|
||||||
*.p12
|
*.p12
|
||||||
*.mobileprovision
|
*.mobileprovision
|
||||||
|
|||||||
14
README.md
14
README.md
@@ -31,11 +31,23 @@ Le code web n'est pas embarqué — l'app pointe vers la prod via `server.url` d
|
|||||||
### 1. Cloner le repo sur le Mac mini
|
### 1. Cloner le repo sur le Mac mini
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@gitea:sylvain/coach-ios.git
|
git clone https://git.nexus.hypnotruck.ch/sylvain/coach-ios.git
|
||||||
cd coach-ios
|
cd coach-ios
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 1bis. Configurer le token d'auth (auto-login)
|
||||||
|
|
||||||
|
Le repo ne contient **pas** le token `COACH_WEB_TOKEN` (gitignored). Crée le fichier sur le Mac :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp coach-ios.local.json.example coach-ios.local.json
|
||||||
|
# Édite coach-ios.local.json et remplace par la vraie valeur
|
||||||
|
# (visible dans ~/.config/infomaniak.env sur le VPS, ligne export COACH_WEB_TOKEN=)
|
||||||
|
```
|
||||||
|
|
||||||
|
L'app utilisera ce token pour se connecter automatiquement à `coach.hypnotruck.ch/login?token=...` au lancement.
|
||||||
|
|
||||||
### 2. Générer les icônes & splash
|
### 2. Générer les icônes & splash
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
import type { CapacitorConfig } from '@capacitor/cli';
|
import type { CapacitorConfig } from '@capacitor/cli';
|
||||||
|
import { readFileSync, existsSync } from 'fs';
|
||||||
|
import { resolve } from 'path';
|
||||||
|
|
||||||
|
// Token d'auth coach.hypnotruck.ch chargé depuis coach-ios.local.json (gitignored).
|
||||||
|
// Sur le Mac mini : créer ce fichier avec { "coachWebToken": "..." } avant de builder.
|
||||||
|
const localConfigPath = resolve(__dirname, 'coach-ios.local.json');
|
||||||
|
const localConfig = existsSync(localConfigPath)
|
||||||
|
? JSON.parse(readFileSync(localConfigPath, 'utf-8'))
|
||||||
|
: {};
|
||||||
|
const coachWebToken: string = localConfig.coachWebToken || '';
|
||||||
|
|
||||||
|
const baseUrl = 'https://coach.hypnotruck.ch';
|
||||||
|
const startUrl = coachWebToken
|
||||||
|
? `${baseUrl}/login?token=${encodeURIComponent(coachWebToken)}`
|
||||||
|
: baseUrl;
|
||||||
|
|
||||||
const config: CapacitorConfig = {
|
const config: CapacitorConfig = {
|
||||||
appId: 'ch.hypnotruck.coach',
|
appId: 'ch.hypnotruck.coach',
|
||||||
@@ -6,7 +21,7 @@ const config: CapacitorConfig = {
|
|||||||
webDir: 'www',
|
webDir: 'www',
|
||||||
|
|
||||||
server: {
|
server: {
|
||||||
url: 'https://coach.hypnotruck.ch',
|
url: startUrl,
|
||||||
cleartext: false,
|
cleartext: false,
|
||||||
androidScheme: 'https',
|
androidScheme: 'https',
|
||||||
},
|
},
|
||||||
|
|||||||
3
coach-ios.local.json.example
Normal file
3
coach-ios.local.json.example
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"coachWebToken": "REMPLACE_PAR_LA_VALEUR_DE_COACH_WEB_TOKEN"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user