Skip to content

bareasgi_session

module bareasgi_session

Summary

bareasgi_session

function bareasgi_session.add_session_middleware

Summary

Add session storage middleware.

Description

If no storage provider is supplied the default is to store the sessions in memory.

The default settings are not secure. In production the following settings are recommended.

Setting http_only=True forbids JavaScript from accessing the cookie in the browser. With same_site="Strict" or same_site="Lax", the browser prevents the cookie being sent on cross-site requests. If the server is delivering over https, setting secure=True will prevent the cookie from being sent from non-https requests.

bareasgi_session.add_session_middleware(
app: Application,
storage: Optional[SessionStorage],
*,
context_key: str,
cookie_name: bytes,
expires: Optional[datetime],
max_age: Optional[Union[int, timedelta]],
path: Optional[bytes],
domain: Optional[bytes],
secure: bool,
http_only: bool,
same_site: Optional[bytes]
) -> Application

Parameters

app: Application

The ASGI application.

storage: Optional[SessionStorage] (optional)

The storage provider. Defaults to None.

context_key: str (optional)

The key in the applications context where session data can be found. Defaults to SESSION_CONTEXT_KEY.

cookie_name: bytes (optional)

The cookie name. Defaults to b'bareASGI-session'.

expires: Optional[datetime] (optional)

The cookie expiry time. Defaults to None.

max_age: Optional[Union[int, timedelta]] (optional)

The maximum age of the cookie. Defaults to None.

path: Optional[bytes] (optional)

The cookie path. Defaults to None.

domain: Optional[bytes] (optional)

The cookie domain. If unspecified the host header of the request will be used. Defaults to None.

secure: bool (optional)

The cookie is only sent if the request is using https Defaults to False.

http_only: bool (optional)

If true the cookie is not available with javascript in the client. Defaults to False.

same_site: Optional[bytes] (optional)

Controls whether the cookie is sent cross origin. Defaults to None.

Returns

Application: The ASGI application.

function bareasgi_session.session_data


bareasgi_session.session_data(
request: HttpRequest,
*,
context_key: str
) -> Any

Parameters

request: HttpRequest

context_key: str (optional)

Returns

Any:

class MemorySessionStorage(SessionStorage)

Summary

Memory session storage

bareasgi_session.storage.MemorySessionStorage() -> None

async method MemorySessionStorage.load

Summary

Load session data

async MemorySessionStorage.load(
key: str
) -> dict

Parameters

key: str

The session key.

Returns

dict: The session data.

async method MemorySessionStorage.save

Summary

Save session data

async MemorySessionStorage.save(
key: str,
session: dict
) -> Any

Parameters

key: str

The session key.

session: dict

The session data.

Returns

Any:

class SessionStorage

Summary

Session Storage

bareasgi_session.storage.SessionStorage() -> None

async method SessionStorage.load

Summary

Load session data

async SessionStorage.load(
key: str
) -> dict

Parameters

key: str

The session key.

Returns

dict: The session data.

async method SessionStorage.save

Summary

Save session data

async SessionStorage.save(
key: str,
session: dict
) -> Any

Parameters

key: str

The session key.

session: dict

The session data.

Returns

Any: