initSessionData static method
Implementation
static Future<Map<String, dynamic>> initSessionData(String userId) async
{
final appId = _mAppId ?? "";
if(userId.isEmpty || appId.isEmpty) { return {}; }
final key = "talk_plus_login_$appId";
final value = await _storage.read(key: key) ?? "";
if(value.isEmpty) {
Logger.log("No data for $appId");
return {};
}
Map<String, dynamic> sessionData = json.decode(value);
String sessionToken = sessionData["session_token"] ?? "";
String sessionId = sessionData["session_id"] ?? "";
String userIdValue = sessionData["user_id"] ?? "";
if(sessionToken.isEmpty || sessionId.isEmpty || userIdValue.isEmpty) { return {}; }
if(userIdValue.compareTo(userId) != 0) {
Logger.log("No data for $userId");
return {};
}
if(_isJWTTokenExpired(sessionToken)) { return {}; }
_setSessionToken(sessionToken);
_setSessionId(sessionId);
Logger.log("SessionData Loaded for ($userId)");
return sessionData;
}