bool TSessionCookieStore::store(TSession &session) { if (session.isEmpty()) return true; QByteArray ba; QDataStream ds(&ba, QIODevice::WriteOnly); ds << *static_cast<const QVariantHash *>(&session); QByteArray digest = QCryptographicHash::hash(ba + Tf::app()->appSettings().value("Session.Secret").toByteArray(), QCryptographicHash::Sha1); session.sessionId = ba.toHex() + "_" + digest.toHex(); return true; }