Default actor_from_request hook supporting ds_actor signed cookie

Refs #784, refs #699
pull/703/head
Simon Willison 2020-05-31 18:06:16 -07:00
rodzic 9f3d4aba31
commit 57cf5139c5
1 zmienionych plików z 18 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,18 @@
from datasette import hookimpl
from itsdangerous import BadSignature
from http.cookies import SimpleCookie
@hookimpl
def actor_from_request(datasette, request):
cookies = SimpleCookie()
cookies.load(
dict(request.scope.get("headers") or []).get(b"cookie", b"").decode("utf-8")
)
if "ds_actor" not in cookies:
return None
ds_actor = cookies["ds_actor"].value
try:
return datasette.unsign(ds_actor, "actor")
except BadSignature:
return None