Access и refresh токены кладут в Keychain с подходящим accessibility; не в UserDefaults и не в незащищённых файлах.
Разбор
- После logout удаляют записи из Keychain.
- Biometric/passcode связывают через access control.
- Токены не логируют.
- App Group Keychain для extensions настраивают осторожно.
Итог
Секреты сессии — Keychain и минимальный lifetime.