Saioen kudeaketa
SecureSession Manager
SecureSessionManager.kt aplikazioak abiarazteko erabiltzailearen saioaren iraupena kudeatzen du SharedPreferences erabiliz.
object SecureSessionManager {
fun setContext(context: Context)
fun iniciarSesion(id: Int, nombre: String, isAdmin: Boolean, isPremium: Boolean): Boolean
fun obtenerSesion(): SesionData?
fun cerrarSesion()
}
Hasieratzea
setContext(context) deitu behar da beste edozein eragiketa baino lehen. MainActivity.onCreate()-n deitutako jardueraren testuinguruarekin. Barruan SharedPreferences bat sortzen du AppConfig.SESSION_PREFS_NAME ("trainium_session") eta MODE_PRIVATE moduarekin.
hasi saioa
Gorde saioaren datuak SharedPreferences-n:
fun iniciarSesion(id: Int, nombre: String, isAdmin: Boolean, isPremium: Boolean): Boolean
userId, userName, isAdmin eta isPremium jarraitzen dute. true itzultzen du gordetzea ondo burutu bada (egiaztatu userId berrirakurtuz).
LoginScreen-tik deitua autentifikazio arrakastatsuaren ondoren.
getSession
Berreskuratu gordetako saioaren datuak:
fun obtenerSesion(): SesionData?
SesionData objektu bat itzultzen du erabiltzailearen datuekin, edo null gordetako saiorik ez badago (lehen abioa edo saioa amaitu ondoren). Aplikazioa abiarazten denean loading pantailatik deitzen da.
itxi saioa
Garbitu SharedPreferences-ko datu guztiak:
fun cerrarSesion()
ProfileScreen-tik deitzen da erabiltzaileak "Salitu saioa" sakatzen duenean, main-ra popUpTo(0)-rekin nabigatu baino lehen.
SessionData Model
data class SesionData(
val userId: Int,
val userName: String,
val isAdmin: Boolean,
val isPremium: Boolean,
val token: String = ""
)
Saioaren iraupena
AppConfig.SESSION_DURATION_MS saioaren iraupen teorikoa definitzen du (7 egun milisegundotan). Hala ere, oraingo ezarpenean saioa ez da automatikoki iraungitzen; Irauten da erabiltzailea esplizituki saioa amaitzen den arte edo aplikazioaren datuak garbitu arte.