Passwort-Speicherung
Anmeldedaten sicher im System-Keychain speichern 🔐
Das Capacitor Autofill Save Password Plugin bietet Passwort-Speicher- und Autofill-Funktionalität für Capacitor-Anwendungen. Dieses Plugin integriert sich mit der Anmeldedatenverwaltung auf Systemebene, um nahtlose Authentifizierungserlebnisse mit sicherer Passwortspeicherung und -abruf zu bieten.
Passwort-Speicherung
Anmeldedaten sicher im System-Keychain speichern 🔐
Autofill-Integration
Passwort-Autofill-Unterstützung auf Systemebene 🗝️
Plattformübergreifend
iOS-Unterstützung mit Android-Entwicklung in Arbeit 📱
Domain-Zuordnung
Associated Domains für nahtlose Authentifizierung ❤️
npm install @capgo/capacitor-autofill-save-passwordnpx cap syncKonfigurieren Sie Associated Domains in Ihrem Apple Developer Account und fügen Sie sie zu Ihrer App.entitlements Datei hinzu:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.developer.associated-domains</key> <array> <string>webcredentials:yourdomain.com</string> <string>webcredentials:www.yourdomain.com</string> </array></dict></plist>Fügen Sie eine .well-known/apple-app-site-association Datei zu Ihrer Website hinzu:
{ "webcredentials": { "apps": [ "TEAMID.com.yourcompany.yourapp" ] }}promptDialog(options) - Passwort im System-Keychain speichernreadPassword() - Gespeichertes Passwort aus Keychain lesenimport { SavePassword } from '@capgo/capacitor-autofill-save-password';
// Passwort nach erfolgreicher Anmeldung speichernasync function login(username: string, password: string) { try { // Führen Sie hier Ihre Anmeldelogik aus const loginSuccess = await performLogin(username, password);
if (loginSuccess) { // Benutzer zum Speichern des Passworts auffordern await SavePassword.promptDialog({ username: username, password: password, url: 'https://yourdomain.com' // nur iOS });
console.log('Passwort erfolgreich gespeichert'); } } catch (error) { console.error('Passwort konnte nicht gespeichert werden:', error); }}
// Gespeichertes Passwort für Autofill lesenasync function loadSavedCredentials() { try { const credentials = await SavePassword.readPassword();
if (credentials.username && credentials.password) { console.log('Gespeicherte Anmeldedaten gefunden'); // Anmeldeformular vorab ausfüllen return { username: credentials.username, password: credentials.password }; } } catch (error) { console.error('Gespeichertes Passwort konnte nicht gelesen werden:', error); }
return null;}Für zukünftige Android-Unterstützung wird die folgende Konfiguration erforderlich sein:
Fügen Sie zu android/app/build.gradle hinzu:
apply plugin: 'com.google.gms.google-services'Fügen Sie zu android/app/src/main/res/values/strings.xml hinzu:
<resources> <string name="asset_statements"> [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "web", "site": "https://yourdomain.com" } }] </string></resources>Fügen Sie google-services.json zu Ihrem Android-Projekt hinzu.
Speichert Benutzeranmeldedaten im System-Keychain.
interface SavePasswordOptions { username: string; password: string; url?: string; // Nur iOS - zugehörige Domain-URL}Ruft gespeicherte Anmeldedaten aus dem System-Keychain ab.
interface SavedCredentials { username: string; password: string;}import { SavePassword } from '@capgo/capacitor-autofill-save-password';
class AuthService { async login(username: string, password: string) { try { // Mit Ihrem Backend authentifizieren const response = await fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }) });
if (response.ok) { // Anmeldedaten zum Speichern anbieten await this.offerToSavePassword(username, password); return true; } } catch (error) { console.error('Anmeldung fehlgeschlagen:', error); } return false; }
private async offerToSavePassword(username: string, password: string) { try { await SavePassword.promptDialog({ username, password, url: 'https://yourdomain.com' }); } catch (error) { // Benutzer hat abgelehnt zu speichern oder Fehler aufgetreten console.log('Passwort nicht gespeichert:', error); } }
async loadSavedCredentials() { try { return await SavePassword.readPassword(); } catch (error) { console.log('Keine gespeicherten Anmeldedaten gefunden'); return null; } }}Siehe die vollständige Dokumentation für detaillierte Implementierungsanleitungen und erweiterte Integrationsmuster.