Skip to content

Commit ce26cb6

Browse files
Omit action_code from validate_challenge response
1 parent 6f3380f commit ce26cb6

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

authsignal/client.py

+12
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@ def _remove_none_values(d: Dict[str, Any]) -> Dict[str, Any]:
5050
"""Remove keys with None values from a dictionary."""
5151
return {k: v for k, v in d.items() if v is not None}
5252

53+
def send(self, request, **kwargs):
54+
response = super().send(request, **kwargs)
55+
if response.headers.get('Content-Type') == 'application/json':
56+
try:
57+
data = response.json()
58+
if isinstance(data, dict) and 'actionCode' in data:
59+
del data['actionCode']
60+
response._content = json.dumps(data).encode('utf-8')
61+
except json.JSONDecodeError:
62+
pass
63+
return response
64+
5365
class Client(object):
5466

5567
def __init__(

authsignal/client_tests.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def setUp(self):
122122
"tenantId": "555159e4-adc3-454b-82b1-b55a2783f712",
123123
"publishableKey": "2fff14a6600b7a58170793109c78b876",
124124
"userId": "legitimate_user_id",
125-
"actionCode": "alwaysChallenge",
125+
"action": "alwaysChallenge",
126126
"idempotencyKey": "a682af7d-c929-4c29-9c2a-71e69ab5c603"
127127
}
128128
}
@@ -137,7 +137,7 @@ def test_it_returns_success_if_user_id_is_correct(self):
137137
'state': 'CHALLENGE_SUCCEEDED',
138138
'stateUpdatedAt': '2024-07-11T22:03:39.037Z',
139139
'userId': 'legitimate_user_id',
140-
'actionCode': 'signin',
140+
'action': 'signin',
141141
'idempotencyKey': 'f2a0275e-bdbb-464a-8398-13c60c98097c'
142142
},
143143
status=200
@@ -167,7 +167,7 @@ def test_delete_authenticator(self):
167167
self.assertEqual(responses.calls[0].response.status_code, 200)
168168

169169
@responses.activate
170-
def test_it_returns_success_false_if_user_id_is_incorrect(self):
170+
def test_validate_challenge_returns_success_false_if_user_id_is_incorrect(self):
171171
responses.add(responses.POST, f"{base_url}/validate",
172172
json={'isValid': False, 'error': 'User is invalid.'},
173173
status=400
@@ -179,7 +179,7 @@ def test_it_returns_success_false_if_user_id_is_incorrect(self):
179179
self.assertEqual(response.get("error"), "User is invalid.")
180180

181181
@responses.activate
182-
def test_it_returns_isValid_false_if_action_is_incorrect(self):
182+
def test_validate_challenge_returns_isValid_false_if_action_is_incorrect(self):
183183
responses.add(responses.POST, f"{base_url}/validate",
184184
json={
185185
'isValid': False,
@@ -194,14 +194,15 @@ def test_it_returns_isValid_false_if_action_is_incorrect(self):
194194
self.assertFalse(response["is_valid"])
195195

196196
@responses.activate
197-
def test_it_returns_success_true_if_no_user_id_is_provided(self):
197+
def test_validate_challenge_returns_success_true_if_no_user_id_is_provided(self):
198198
responses.add(responses.POST, f"{base_url}/validate",
199199
json={
200200
'isValid': True,
201201
'state': 'CHALLENGE_SUCCEEDED',
202202
'stateUpdatedAt': '2024-07-11T22:39:23.613Z',
203203
'userId': 'legitimate_user_id',
204-
'actionCode': 'signin',
204+
'action': 'signin',
205+
'actionCode': 'signin',
205206
'idempotencyKey': '6d09db21-1aa9-4b7f-826f-dbc6a0af79eb',
206207
'verificationMethod': 'EMAIL_MAGIC_LINK'
207208
},

0 commit comments

Comments
 (0)