Zum Hauptinhalt springen

Erste Schritte

misskey_auth ist eine Flutter-Bibliothek für die Authentifizierung bei Misskey-Servern. Sie unterstützt sowohl OAuth 2.0 als auch MiAuth und kann Token für mehrere Konten speichern.

Funktionen​

  • OAuth-2.0-Authentifizierung bei Misskey-Servern (ab v2023.9.0)
  • MiAuth-Authentifizierung für ältere Server
  • Authentifizierung im externen Browser (ohne eingebettete WebView)
  • PKCE (Proof Key for Code Exchange)
  • Rückkehr zur App über ein benutzerdefiniertes URL-Schema
  • Sichere Token-Speicherung mit flutter_secure_storage
  • Speicherung von Token für mehrere Konten und Wechsel des aktiven Kontos
  • High-Level-API MisskeyAuthManager zur Authentifizierung und Token-Speicherung
  • iOS und Android

Voraussetzungen​

  • Flutter 3.47.1 oder höher, Dart 3.13.1 oder höher und niedriger als 4.0
  • Android API 24 oder höher, compileSdk 37 oder höher
  • iOS 15 oder höher

Wenn Sie von einer früheren Version aktualisieren, lesen Sie zuerst die Hinweise zum Upgrade. Unter Android ist eine erneute Anmeldung erforderlich.

Installation​

Fügen Sie das Paket zu pubspec.yaml hinzu.

dependencies:
misskey_auth: ^0.2.0-beta.2

Rufen Sie anschließend die Abhängigkeiten ab.

flutter pub get

Schnellstart​

Die Authentifizierung erfolgt in drei Schritten.

  1. Veröffentlichen Sie eine client_id-Seite (nur für OAuth). Misskey ruft diese HTTPS-Seite ab, um die redirect URI der App zu überprüfen. Weitere Informationen finden Sie unter client_id-Seite.
  2. Registrieren Sie ein benutzerdefiniertes URL-Schema in der App. Der Browser kehrt über dieses Schema zur App zurück. Weitere Informationen finden Sie unter Plattformkonfiguration.
  3. Führen Sie die Authentifizierung über Dart aus.
import 'package:misskey_auth/misskey_auth.dart';

final auth = MisskeyAuthManager.defaultInstance();

// OAuth (Misskey v2023.9.0 oder höher)
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 (funktioniert auch mit älteren Servern)
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,
);

// Gespeichertes Token des aktiven Kontos lesen
final current = await auth.currentToken();
print(current?.accessToken);

MisskeyAuthManager speichert jedes Token mit SecureTokenStore. Wenn Sie Token selbst verwalten möchten, verwenden Sie direkt MisskeyOAuthClient oder MisskeyMiAuthClient. Weitere Informationen finden Sie unter OAuth und MiAuth.

Weiterführende Seiten​

Beispiel-App​

Im Repository befindet sich unter example/ eine Beispiel-App. Diese App verwendet die unter https://librarylibrarian.github.io/misskey_auth/example/ veröffentlichte client_id-Seite. Verwenden Sie diese Seite nur zum Ausprobieren des Beispiels und veröffentlichen Sie für Ihre eigene App eine eigene client_id-Seite.