diff --git a/hypha/settings/base.py b/hypha/settings/base.py
index 3c12ef1e8d4c88d3069df6f3e852ca1ac46deb17..27c5b16b694243e5b0cae83875be3f15d73862b1 100644
--- a/hypha/settings/base.py
+++ b/hypha/settings/base.py
@@ -296,6 +296,10 @@ PASSWORD_RESET_TIMEOUT = env.int('PASSWORD_RESET_TIMEOUT', 259200)
 # Seconds to enter password on password page while email change/2FA change (default 120).
 PASSWORD_PAGE_TIMEOUT = env.int('PASSWORD_PAGE_TIMEOUT', 120)
 
+# Use Pillow to create QR codes so they are PNG and not SVG.
+# Apples Safari on iOS and macOS can then recognise them automatically.
+TWO_FACTOR_QR_FACTORY = 'qrcode.image.pil.PilImage'
+
 # Internationalization
 # https://docs.djangoproject.com/en/stable/topics/i18n/