Skip to content

Commit 0bb5032

Browse files
committed
feat(socialaccount): Add timeout to requests
1 parent 170530a commit 0bb5032

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

ChangeLog.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ Note worthy changes
1919
- Added a new app, user sessions, allowing users to view a list of all their
2020
active sessions, as well as offering a means to end these sessions.
2121

22+
- A configurable timeout (``SOCIALACCOUNT_REQUESTS_TIMEOUT``) is now applied to
23+
all upstream requests.
24+
2225

2326
Backwards incompatible changes
2427
------------------------------

allauth/socialaccount/adapter.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import functools
12
import requests
23
import warnings
34

@@ -293,7 +294,11 @@ def get_app(self, request, provider, client_id=None):
293294
return apps[0]
294295

295296
def get_requests_session(self):
296-
return requests.Session()
297+
session = requests.Session()
298+
session.request = functools.partial(
299+
session.request, timeout=app_settings.REQUESTS_TIMEOUT
300+
)
301+
return session
297302

298303

299304
def get_adapter(request=None):

allauth/socialaccount/app_settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ def UID_MAX_LENGTH(self):
139139
def SOCIALACCOUNT_STR(self):
140140
return self._setting("SOCIALACCOUNT_STR", None)
141141

142+
@property
143+
def REQUESTS_TIMEOUT(self):
144+
return self._setting("REQUESTS_TIMEOUT", 5)
145+
142146

143147
_app_settings = AppSettings("SOCIALACCOUNT_")
144148

docs/socialaccount/configuration.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ Available settings:
7070
``SOCIALACCOUNT_PROVIDERS`` (default: ``{}``)
7171
Dictionary containing `provider specific settings <provider_configuration.html>`__.
7272

73+
``SOCIALACCOUNT_REQUESTS_TIMEOUT`` (default: ``5``)
74+
The timeout applied when performing upstream requests.
75+
7376
``SOCIALACCOUNT_QUERY_EMAIL`` (default: ``ACCOUNT_EMAIL_REQUIRED``)
7477
Request email address from 3rd party account provider? E.g. using
7578
OpenID AX, or the Facebook "email" permission.

0 commit comments

Comments
 (0)