diff --git a/gregsite/settings/base.py b/gregsite/settings/base.py
index 4d8d8b63c07c6dcf222ebf369d219b26267dd8c0..2fe6af2a7573e215c46d9490916eedecd909c4ea 100644
--- a/gregsite/settings/base.py
+++ b/gregsite/settings/base.py
@@ -60,7 +60,6 @@ MIDDLEWARE = [
     "django.middleware.common.CommonMiddleware",
     "django.middleware.csrf.CsrfViewMiddleware",
     "django.contrib.auth.middleware.AuthenticationMiddleware",
-    "sesame.middleware.AuthenticationMiddleware",
     "django.contrib.messages.middleware.MessageMiddleware",
     "django.middleware.clickjacking.XFrameOptionsMiddleware",
     "django_structlog.middlewares.RequestMiddleware",
@@ -70,10 +69,8 @@ MIDDLEWARE = [
 AUTHENTICATION_BACKENDS = [
     "django.contrib.auth.backends.ModelBackend",  # default
     "gregui.authentication.auth_backends.GregOIDCBackend",
-    "sesame.backends.ModelBackend",  # link login
 ]
 
-SESAME_MAX_AGE = 600  # lifetime of token in seconds
 SESSION_COOKIE_AGE = 1800  # lifetime of session in seconds
 
 CSRF_COOKIE_SAMESITE = "Lax"
diff --git a/gregsite/settings/dev.py b/gregsite/settings/dev.py
index fdc4fb71f9cdb2e5567ad57392be840d2d03bb14..4bc5a1ceb9806a408800a631287c7fe70f0bd43f 100644
--- a/gregsite/settings/dev.py
+++ b/gregsite/settings/dev.py
@@ -41,7 +41,6 @@ AUTHENTICATION_BACKENDS = [
     "gregui.authentication.auth_backends.DevBackend",  # Fake dev backend
     "django.contrib.auth.backends.ModelBackend",  # default
     "gregui.authentication.auth_backends.GregOIDCBackend",
-    "sesame.backends.ModelBackend",  # link login
 ]
 
 LOGIN_REDIRECT_URL = "http://localhost:3000/"
diff --git a/gregsite/settings/testing.py b/gregsite/settings/testing.py
index f07764575c58e835d2853d9062007ce9c1702825..6ff8ab3648123852dd5f34d70bd8ea7b6fa7b65a 100644
--- a/gregsite/settings/testing.py
+++ b/gregsite/settings/testing.py
@@ -6,7 +6,6 @@ AUTHENTICATION_BACKENDS = [
     "gregui.authentication.auth_backends.DevBackend",  # Fake dev backend
     "django.contrib.auth.backends.ModelBackend",  # default
     "gregui.authentication.auth_backends.GregOIDCBackend",
-    "sesame.backends.ModelBackend",  # link login
 ]
 
 OIDC_RP_CLIENT_ID = "lalalalala"
diff --git a/poetry.lock b/poetry.lock
index 8a29513c0de239e5e30e6ad283311908341d2098..c007e5eb43e05a08a542630c7563f48315fc4341 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -363,21 +363,6 @@ python-versions = ">=3.6"
 [package.dependencies]
 django = ">=2.0"
 
-[[package]]
-name = "django-sesame"
-version = "2.4"
-description = "Frictionless authentication with \"Magic Links\" for your Django project."
-category = "main"
-optional = false
-python-versions = ">=3.6,<4.0"
-
-[package.dependencies]
-django = ">=2.2"
-ua-parser = {version = ">=0.10", optional = true, markers = "extra == \"ua\""}
-
-[package.extras]
-ua = ["ua-parser (>=0.10)"]
-
 [[package]]
 name = "django-structlog"
 version = "2.2.0"
@@ -1247,14 +1232,6 @@ category = "main"
 optional = false
 python-versions = ">=2"
 
-[[package]]
-name = "ua-parser"
-version = "0.10.0"
-description = "Python port of Browserscope's user agent parser"
-category = "main"
-optional = false
-python-versions = "*"
-
 [[package]]
 name = "uritemplate"
 version = "4.1.1"
@@ -1306,7 +1283,7 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.9"
-content-hash = "9887d688cf3c515273b5ccbc7313ba2795d6fbf6e6828091537761c376dbee87"
+content-hash = "836743d98795ccdcd97051c191769977db18efb954e93f34b14eb029c56e92fa"
 
 [metadata.files]
 ansicon = [
@@ -1537,10 +1514,6 @@ django-reversion = [
     {file = "django-reversion-4.0.1.tar.gz", hash = "sha256:6991f16e5d3a972912db3d56e3a714d10b07becd566ab87f85f2e9b671981339"},
     {file = "django_reversion-4.0.1-py3-none-any.whl", hash = "sha256:2e40ed41e08cdd83a05dc70a1974feface52a61ba7d289727117163052081ae6"},
 ]
-django-sesame = [
-    {file = "django-sesame-2.4.tar.gz", hash = "sha256:4f232ba1c3642b4eef23257af9a2feac36970457d2940f4083c48c6a3d9cb0a3"},
-    {file = "django_sesame-2.4-py3-none-any.whl", hash = "sha256:b0570b610ec2f3602ff12d43b5bca41c4a37a3079e6a0170ceccc69689446b87"},
-]
 django-structlog = [
     {file = "django-structlog-2.2.0.tar.gz", hash = "sha256:0443d39d27bf34258a375a2dfd1a0ae51f24bedce88beae55c1b69f3c09af922"},
     {file = "django_structlog-2.2.0-py3-none-any.whl", hash = "sha256:d6eb180963c7baf381ad7035e9afc7ecb7031246cb640f16925fe72f7712a2a1"},
@@ -2015,10 +1988,6 @@ tzdata = [
     {file = "tzdata-2021.5-py2.py3-none-any.whl", hash = "sha256:3eee491e22ebfe1e5cfcc97a4137cd70f092ce59144d81f8924a844de05ba8f5"},
     {file = "tzdata-2021.5.tar.gz", hash = "sha256:68dbe41afd01b867894bbdfd54fa03f468cfa4f0086bfb4adcd8de8f24f3ee21"},
 ]
-ua-parser = [
-    {file = "ua-parser-0.10.0.tar.gz", hash = "sha256:47b1782ed130d890018d983fac37c2a80799d9e0b9c532e734c67cf70f185033"},
-    {file = "ua_parser-0.10.0-py2.py3-none-any.whl", hash = "sha256:46ab2e383c01dbd2ab284991b87d624a26a08f72da4d7d413f5bfab8b9036f8a"},
-]
 uritemplate = [
     {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"},
     {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"},
diff --git a/pyproject.toml b/pyproject.toml
index dd8482696de3ff89475606814de131dcb169ef89..b8d011a92dd349c2dfb1a31a1b7b3fca8384aad3 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -21,7 +21,6 @@ python-json-logger = "*"
 sentry-sdk = "*"
 whitenoise = "*"
 django-reversion = "*"
-django-sesame = {extras = ["ua"], version = "^2.4"}
 mozilla-django-oidc = "^2.0.0"
 django-q = "^1.3.9"
 django-structlog = "^2.1.3"