creaztionapikey
This commit is contained in:
@@ -45,20 +45,37 @@ REDIRECT_URI=...
|
||||
|
||||
## 2.3 — Choisir le `REDIRECT_URI` (mobile)
|
||||
|
||||
Deux approches courantes en Flutter :
|
||||
### Erreur Intra : « must be a valid URI »
|
||||
|
||||
| Approche | Redirect URI typique | Packages |
|
||||
|----------|----------------------|----------|
|
||||
| **Deep link** (recommandé mobile) | `com.example.swifty_companion://callback` | `flutter_appauth` + config Android/iOS |
|
||||
| **Boucle locale / custom scheme** | variante documentée dans [apidoc OAuth](https://api.intra.42.fr/apidoc) | `url_launcher` + écoute du retour |
|
||||
Le formulaire **42 Intra** accepte en pratique surtout des URI **`http://` ou `https://`**.
|
||||
Les schémas du type `com.example.swifty_companion://callback` sont souvent **refusés** (validateur strict + `_` dans le schéma).
|
||||
|
||||
Le même URI doit être :
|
||||
**Type d’application Intra :** `42 pedagogic project` (normal pour Swifty Companion — pas de type « mobile »).
|
||||
|
||||
- dans le formulaire Intra ;
|
||||
- dans `.env` ;
|
||||
- dans `AndroidManifest` / iOS (intent filter) si deep link.
|
||||
**URI de redirection** — format **http(s)://host:port/chemin** uniquement (pas de `com.example://…`).
|
||||
|
||||
**Android** : `applicationId` actuel = `com.example.swifty_companion` (`android/app/build.gradle.kts`).
|
||||
Essayer **dans cet ordre** (une seule ligne dans le champ, sans guillemets ni espace) :
|
||||
|
||||
1. `http://localhost:8080/callback` ← le plus courant sur l’Intra 42
|
||||
2. `http://localhost:3000/callback`
|
||||
3. `http://127.0.0.1:8080/callback`
|
||||
|
||||
Exemple tiré de la [doc 42](https://api.intra.42.fr/apidoc/guides/web_application_flow) :
|
||||
`http://localhost:1919/users/auth/ft/callback` (tu peux t’en inspirer, mais garde une URI simple type `/callback`).
|
||||
|
||||
Copier **exactement** la ligne acceptée dans `.env` et dans Flutter.
|
||||
|
||||
Avec `flutter_appauth`, Android/iOS interceptent cette URL de boucle locale après le login dans le navigateur — pas besoin d’un vrai serveur web.
|
||||
|
||||
| Approche | Redirect URI | Intra 42 |
|
||||
|----------|--------------|----------|
|
||||
| **Recommandé (Flutter + 42)** | `http://127.0.0.1:42800/callback` | ✅ en général accepté |
|
||||
| Schéma custom | `com.example.swifty_companion://callback` | ❌ souvent refusé |
|
||||
| Site web classique | `https://ton-domaine.com/callback` | ✅ si tu as un backend |
|
||||
|
||||
Le même URI doit être : formulaire Intra, `.env`, et paramètre `redirect_uri` dans l’app.
|
||||
|
||||
**Android** : `applicationId` = `com.example.swifty_companion` (`android/app/build.gradle.kts`) — indépendant du `REDIRECT_URI` loopback.
|
||||
|
||||
Endpoints 42 (référence) :
|
||||
|
||||
|
||||
Reference in New Issue
Block a user