Open nathan-aa opened 5 months ago
@NateTunes Any Progress on a workaround to use expire_at
for cookies?
class CookieManager(MutableMapping[str, str]):
def __init__(self, *, path: str = None, prefix="", expiry_time=None):
self._queue = st.session_state.setdefault('CookieManager.queue', {})
self._prefix = prefix
raw_cookie = self._run_component(save_only=False, key="CookieManager.sync_cookies")
if raw_cookie is None:
self._cookies = None
else:
self._cookies = parse_cookies(raw_cookie)
self._clean_queue()
if expiry_time == None:
self._default_expiry = datetime.now() + timedelta(days=365)
else:
self._default_expiry = expiry_time
self._path = path if path is not None else "/"
class EncryptedCookieManager(MutableMapping[str, str]):
def __init__(
self, *,
password: str,
path: str = None,
prefix: str = "",
key_params_cookie="EncryptedCookieManager.key_params",
ignore_broken=True,
expiry_time=None,
):
self._cookie_manager = CookieManager(path=path, prefix=prefix, expiry_time=expiry_time)
self._fernet: Optional[Fernet] = None
self._key_params_cookie = key_params_cookie
self._password = password
self._ignore_broken = ignore_broken
cookies = EncryptedCookieManager(
# This prefix will get added to all your cookie names.
# This way you can run your app on Streamlit Cloud without cookie name clashes with other apps.
prefix="ktosiek/streamlit-cookies-manager/",
# You should really setup a long COOKIES_PASSWORD secret if you're running on Streamlit Cloud.
password=os.environ.get("COOKIES_PASSWORD", "My secret password"),
# set the expiry time
expiry_time=datetime.now() + timedelta(minutes=1),
)
@NateTunes Any Progress on a workaround to use
expire_at
for cookies?
Actually no, we have left this aside.
First of all it's a great package. Thank you, nice people!
would be nice to add this attribute while setting a new cookie.
I have tried to set the
_default_expiry
w/o success: