Iniziare
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-autofill-save-password`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/it/docs/plugins/autofill-save-password/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installazione
Section titled “Installazione”npm install @capgo/capacitor-autofill-save-passwordnpx cap syncyarn add @capgo/capacitor-autofill-save-passwordnpx cap syncpnpm add @capgo/capacitor-autofill-save-passwordnpx cap syncbun add @capgo/capacitor-autofill-save-passwordnpx cap syncSupporto Piattaforme
Section titled “Supporto Piattaforme”- iOS: Supporto completo (iOS 18.3 e versioni precedenti)
- Android: Lavori in corso
Configurazione Piattaforma
Section titled “Configurazione Piattaforma”1. Configurazione Domini Associati
Section titled “1. Configurazione Domini Associati”Configura i domini associati nel tuo account Apple Developer e aggiungili al tuo file App.entitlements:
<?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>2. Configurazione Credenziali Web
Section titled “2. Configurazione Credenziali Web”Aggiungi un file .well-known/apple-app-site-association al tuo sito web:
{ "webcredentials": { "apps": [ "TEAMID.com.yourcompany.yourapp" ] }}Android (Supporto Futuro)
Section titled “Android (Supporto Futuro)”1. Plugin Google Services
Section titled “1. Plugin Google Services”Aggiungi a android/app/build.gradle:
apply plugin: 'com.google.gms.google-services'2. Configurazione Domini
Section titled “2. Configurazione Domini”Aggiungi a android/app/src/main/res/values/strings.xml:
<resources> <string name="asset_statements"> [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "web", "site": "https://yourdomain.com" } }] </string></resources>Esempio di Utilizzo
Section titled “Esempio di Utilizzo”import { SavePassword } from '@capgo/capacitor-autofill-save-password';
// Salva la password dopo un login riuscitoasync function login(username: string, password: string) { try { // Esegui qui la tua logica di login const loginSuccess = await performLogin(username, password);
if (loginSuccess) { // Chiedi all'utente di salvare la password await SavePassword.promptDialog({ username: username, password: password, url: 'https://yourdomain.com' // Solo iOS });
console.log('Password salvata con successo'); } } catch (error) { console.error('Impossibile salvare la password:', error); }}
// Leggi la password salvata per l'autofillasync function loadSavedCredentials() { try { const credentials = await SavePassword.readPassword();
if (credentials.username && credentials.password) { console.log('Credenziali salvate trovate'); // Pre-compila il modulo di login return { username: credentials.username, password: credentials.password }; } } catch (error) { console.error('Impossibile leggere la password salvata:', error); }
return null;}Riferimento API
Section titled “Riferimento API”promptDialog(options)
Section titled “promptDialog(options)”promptDialog(options: SavePasswordOptions) => Promise<void>Salva le credenziali utente nel portachiavi di sistema.
| Parametro | Tipo |
|---|---|
options | SavePasswordOptions |
readPassword()
Section titled “readPassword()”readPassword() => Promise<SavedCredentials>Recupera le credenziali salvate dal portachiavi di sistema.
Ritorna: Promise<SavedCredentials>
Interfacce
Section titled “Interfacce”SavePasswordOptions
Section titled “SavePasswordOptions”| Prop | Tipo | Descrizione |
|---|---|---|
username | string | Il nome utente da salvare |
password | string | La password da salvare |
url | string | Solo iOS - URL del dominio associato (opzionale) |
SavedCredentials
Section titled “SavedCredentials”| Prop | Tipo | Descrizione |
|---|---|---|
username | string | Il nome utente salvato |
password | string | La password salvata |
Integrazione con il Flusso di Login
Section titled “Integrazione con il Flusso di Login”import { SavePassword } from '@capgo/capacitor-autofill-save-password';
class AuthService { async login(username: string, password: string) { try { // Autentica con il tuo backend const response = await fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }) });
if (response.ok) { // Offri di salvare le credenziali await this.offerToSavePassword(username, password); return true; } } catch (error) { console.error('Login fallito:', error); } return false; }
private async offerToSavePassword(username: string, password: string) { try { await SavePassword.promptDialog({ username, password, url: 'https://yourdomain.com' }); } catch (error) { // L'utente ha rifiutato di salvare o si è verificato un errore console.log('Password non salvata:', error); } }
async loadSavedCredentials() { try { return await SavePassword.readPassword(); } catch (error) { console.log('Nessuna credenziale salvata trovata'); return null; } }}Best practice
Section titled “Best practice”- Chiedi di salvare le password solo dopo un’autenticazione riuscita
- Gestisci i casi in cui gli utenti rifiutano di salvare le password in modo elegante
- Implementa una corretta gestione degli errori per i fallimenti di accesso al portachiavi
- Usa i domini associati per una condivisione senza interruzioni delle credenziali tra web e app
- Testa la funzionalità di autofill su diverse versioni di iOS
Considerazioni sulla Sicurezza
Section titled “Considerazioni sulla Sicurezza”- Le credenziali sono memorizzate nel portachiavi di sistema con flag di sicurezza appropriati
- I domini associati assicurano che le credenziali siano accessibili solo alle app autorizzate
- Segui le linee guida di sicurezza della piattaforma per la gestione delle credenziali
- Considera l’implementazione di misure di sicurezza aggiuntive per applicazioni sensibili