creaztionapikey
This commit is contained in:
BIN
docs/assets/swifty_companion_oauth_icon.png
Normal file
BIN
docs/assets/swifty_companion_oauth_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
BIN
docs/assets/swifty_companion_oauth_icon_256.jpg
Normal file
BIN
docs/assets/swifty_companion_oauth_icon_256.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/assets/swifty_companion_oauth_icon_256.png
Normal file
BIN
docs/assets/swifty_companion_oauth_icon_256.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/assets/swifty_companion_oauth_icon_512.png
Normal file
BIN
docs/assets/swifty_companion_oauth_icon_512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
@@ -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) :
|
||||
|
||||
|
||||
58
docs/pedagogie/intra-oauth-formulaire.md
Normal file
58
docs/pedagogie/intra-oauth-formulaire.md
Normal 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).
|
||||
Reference in New Issue
Block a user