E io proverei anche ad aggiungere un processo a livello di DB (record) che identifichi l'utente (id) e con un campo (process) che, impostato a 0 di default segnala l'esito negativo, impostato a 1 segnala l'esito positivo. Una volta che l'utente riaccede controlli il campo e se terminato lo elimini direttamente o crei uno script che lo elimina dopo X tempo.