creaztionapikey

This commit is contained in:
2026-09-29 09:59:47 +02:00
parent cb8f98fac0
commit 88a7c2eba0
7 changed files with 87 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View File

@@ -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) :

View File

@@ -0,0 +1,58 @@
# Formulaire OAuth Intra — valeurs pour Swifty Companion
À copier-coller sur [Nouvelle application API](https://profile.intra.42.fr/oauth/applications/new) (ou édition).
## Paramètres obligatoires
| Champ (FR) | Valeur proposée |
|------------|-----------------|
| **Nom** * | `Swifty Companion` |
| **Image** | `docs/assets/swifty_companion_oauth_icon_256.png` ou `swifty_companion_oauth_icon_256.jpg` (vrai PNG/JPEG, 256×256). Ne pas uploader l’ancien fichier mal nommé (`.png` qui était en réalité du JPEG). |
| **Description** * | `Projet pédagogique Mobile Initiation : application Flutter pour afficher le profil d’un étudiant 42 via l’API Intra.` |
| **Type d’application** * | **`42 pedagogic project`** (choix correct ; il n’y a pas de type « mobile ») |
| **Site web** | `https://www.42.fr` ou l’URL de ton dépôt GitHub / Git perso (placeholder accepté) |
| **Publique** | **Décoché** (app perso de projet) |
## URI de redirection
**Une seule ligne**, sans guillemets :
```text
http://localhost:8080/callback
```
Si le formulaire affiche encore *invalid format*, tester **une** de ces lignes (toujours une seule) :
```text
http://localhost:3000/callback
```
```text
http://127.0.0.1:8080/callback
```
**À ne pas mettre :**
- `com.example.swifty_companion://callback`
- lignes vides ou plusieurs URI mélangées
- espaces avant/après
## Champs d’application (scopes)
Cocher **uniquement** :
- [x] **Accéder aux données publiques de l'utilisateur** (`public`)
Laisser **décoché** : équipes / projets, données utilisateur, médias, communauté, sujets.
## Après création
Sur la page de l’application :
| Intra | `.env` |
|-------|--------|
| **UID** | `CLIENT_ID` |
| **SECRET** | `CLIENT_SECRET` |
| URI enregistrée | `REDIRECT_URI` (caractère pour caractère identique) |
Fichier : `swiftyCompanion/.env` (ne pas committer).