Premiers pas
misskey_auth est une bibliothèque Flutter pour vous authentifier auprès des serveurs Misskey. Elle prend en charge OAuth 2.0 et MiAuth, et stocke les jetons de plusieurs comptes.
Fonctionnalités
- Authentification OAuth 2.0 pour les serveurs Misskey (v2023.9.0 et versions ultérieures)
- Authentification MiAuth pour les anciens serveurs
- Authentification dans le navigateur externe (sans WebView intégrée)
- PKCE (Proof Key for Code Exchange)
- Retour vers l’application au moyen d’un schéma d’URL personnalisé
- Stockage sécurisé des jetons avec
flutter_secure_storage - Stockage des jetons de plusieurs comptes et changement du compte actif
MisskeyAuthManager, une API de haut niveau qui exécute l’authentification et enregistre les jetons- iOS et Android
Prérequis
- Flutter 3.47.1 ou version ultérieure, et Dart 3.13.1 ou version ultérieure (avant Dart 4)
- Android API 24 ou version ultérieure, avec compileSdk 37 ou version ultérieure
- iOS 15 ou version ultérieure
Si vous effectuez une mise à niveau depuis une version antérieure, consultez d’abord Mise à niveau. Sur Android, les utilisateurs doivent se reconnecter.
Installation
Ajoutez le package à votre pubspec.yaml :
dependencies:
misskey_auth: ^0.2.0-beta.2
Récupérez ensuite le package :
flutter pub get
Démarrage rapide
L’authentification se déroule en trois étapes.
- Publiez une page client_id (OAuth uniquement). Misskey récupère cette page HTTPS pour trouver les URI de redirection de votre application. Consultez Page client_id.
- Enregistrez un schéma d’URL personnalisé dans votre application. Le navigateur revient à l’application via ce schéma. Consultez Configuration des plateformes.
- Lancez le flux depuis Dart.
import 'package:misskey_auth/misskey_auth.dart';
final auth = MisskeyAuthManager.defaultInstance();
// OAuth (Misskey v2023.9.0 et versions ultérieures)
final oauthKey = await auth.loginWithOAuth(
MisskeyOAuthConfig(
host: 'misskey.io',
clientId: 'https://yourpage/yourapp/',
redirectUri: 'yourscheme://oauth/callback',
scope: 'read:account write:notes',
callbackScheme: 'yourscheme',
),
setActive: true,
);
// MiAuth (fonctionne aussi sur les anciens serveurs)
final miKey = await auth.loginWithMiAuth(
MisskeyMiAuthConfig(
host: 'misskey.io',
appName: 'Your App',
callbackScheme: 'yourscheme',
permissions: ['read:account', 'write:notes'],
iconUrl: 'https://example.com/icon.png',
),
setActive: true,
);
// Lit le jeton enregistré du compte actif
final current = await auth.currentToken();
print(current?.accessToken);
MisskeyAuthManager enregistre chaque jeton avec SecureTokenStore. Pour gérer vous-même les jetons, utilisez directement MisskeyOAuthClient ou MisskeyMiAuthClient. Consultez OAuth et MiAuth.
Étapes suivantes
- Page client_id : la page exigée par Misskey pour OAuth
- Configuration des plateformes : configuration iOS et Android
- OAuth et MiAuth : différences entre les deux méthodes et exemples avec ou sans stockage des jetons
- Stockage des jetons : plusieurs comptes,
TokenStoreetSecureTokenStore - Gestion des erreurs : exceptions levées par la bibliothèque
- Référence de l’API sur pub.dev
Application d’exemple
Le dépôt contient une application d’exemple dans example/. Elle utilise la page client_id publiée à https://librarylibrarian.github.io/misskey_auth/example/. Utilisez cette page uniquement pour essayer l’exemple ; publiez votre propre page client_id pour votre application.