A partire dal 30 giugno 2022, Apple ha reso obbligatorio per tutte le app pubblicate su App Store che offrono la creazione di un account di fornire una funzionalità nativa per l'eliminazione completa dell'account direttamente dall'app (App Store Review Guideline 5.1.1(v)).
In questo articolo analizziamo la differenza tecnica tra Disattivazione Temporanea (Soft Delete) e Cancellazione Definitiva GDPR (Hard Delete), mostrando come implementare entrambe le opzioni in SwiftUI e Laravel senza incorrere nel rifiuto dell'app durante la fase di App Review.
1. Disattivazione vs Cancellazione Definitiva
- Disattivazione Account: L'account viene nascosto dai feed e dai risultati di ricerca, ma i dati rimangono salvati per un eventuale ripristino futuro.
- Cancellazione Definitiva GDPR (Diritto all'Oblio): Tutti i dati personali (nome, email, avatar, note vocali, token APNs e relazioni social) vengono eliminati irreversibilmente dal database PostgreSQL e dallo storage del server.
2. Implementazione Controller Laravel 11
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function deactivateAccount(Request $request)
{
$user = $request->user();
$user->update(['is_deactivated' => true]);
$user->tokens()->delete();
return response()->json(['status' => 'success', 'message' => 'Account disattivato.']);
}
public function deleteAccount(Request $request)
{
$user = $request->user();
// Eliminazione file storage utente
if ($user->avatar_url) {
@unlink(public_path($user->avatar_url));
}
// Eliminazione a cascata dal DB
$user->tokens()->delete();
$user->delete();
return response()->json(['status' => 'success', 'message' => 'Account eliminato definitivamente.']);
}
}
Hai un'idea di App iOS o desideri consulenza tecnica per la tua infrastruttura Cloud VPS?
Sviluppo applicazioni iOS native in SwiftUI, backend Laravel ad alte prestazioni e supporto per monetizzazione internazionale.