Skip to content

Commit 0a8e510

Browse files
committed
Implement remember_me support for passkeys.
1 parent 4e5dea7 commit 0a8e510

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

hypha/apply/users/passkey_views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,9 @@ def passkey_auth_complete(request):
235235
login(request, user)
236236
request.session["passkey_authenticated"] = True
237237

238+
if data.get("remember_me"):
239+
request.session.set_expiry(settings.SESSION_COOKIE_AGE_LONG)
240+
238241
next_url = data.get("next") or resolve_url(settings.LOGIN_REDIRECT_URL)
239242
if not url_has_allowed_host_and_scheme(
240243
next_url,

hypha/static_src/javascript/passkeys.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ window.hypha.passkeys = (function () {
2424
return cookie ? cookie.split("=")[1] : "";
2525
}
2626

27+
function getRememberMe() {
28+
const el =
29+
document.getElementById("id_auth-remember_me") ||
30+
document.getElementById("id_remember_me");
31+
return el ? el.checked : false;
32+
}
33+
2734
function jsonPost(url, body) {
2835
return fetch(url, {
2936
method: "POST",
@@ -158,6 +165,7 @@ window.hypha.passkeys = (function () {
158165
const completeResp = await jsonPost(completeUrl, {
159166
...credential.toJSON(),
160167
next: nextUrl,
168+
remember_me: getRememberMe(),
161169
});
162170
if (!completeResp.ok) {
163171
const err = await completeResp.json();
@@ -210,6 +218,7 @@ window.hypha.passkeys = (function () {
210218
const completeResp = await jsonPost(completeUrl, {
211219
...credential.toJSON(),
212220
next: nextUrl,
221+
remember_me: getRememberMe(),
213222
});
214223
if (!completeResp.ok) return;
215224
const data = await completeResp.json();

0 commit comments

Comments
 (0)