saveSession method

  1. @override
Future<void> saveSession(
  1. Session session,
  2. String sessionId
)
override

Implementation

@override
Future<void> saveSession(Session session, String sessionId) async {
  final clearText = session.toJson();
  final secretBox = await algorithm.encryptString(
    clearText,
    secretKey: secretKey,
  );
  if (await sessionExist(sessionId)) {
    await sqlExecute("UPDATE $tableName SET nonce='${base64.encode(secretBox.nonce)}', "
        "cipherText='${base64.encode(secretBox.cipherText)}', "
        "mac='${base64.encode(secretBox.mac.bytes)}' WHERE id='$sessionId';");
  } else {
    await sqlExecute("INSERT INTO $tableName (id, nonce, cipherText, mac) "
        "VALUES ('$sessionId', '${base64.encode(secretBox.nonce)}', "
        "'${base64.encode(secretBox.cipherText)}', '${base64.encode(secretBox.mac.bytes)}');");
  }
}