statezero 0.1.0b64__py3-none-any.whl → 0.1.0b65__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,6 +44,18 @@ class EventsAuthView(APIView):
44
44
  permission_classes = [permission_class]
45
45
 
46
46
  def post(self, request, *args, **kwargs):
47
+ sync_token = getattr(settings, "STATEZERO_SYNC_TOKEN", None)
48
+ client_token = request.headers.get("X-StateZero-Sync-Token")
49
+ if client_token is not None:
50
+ if not sync_token or client_token != sync_token:
51
+ return Response(
52
+ {
53
+ "error": "Sync token mismatch for events auth.",
54
+ "header": "X-StateZero-Sync-Token",
55
+ },
56
+ status=status.HTTP_409_CONFLICT,
57
+ )
58
+
47
59
  channel_name = request.data.get("channel_name")
48
60
  socket_id = request.data.get("socket_id")
49
61
 
@@ -77,6 +89,14 @@ class EventsAuthView(APIView):
77
89
 
78
90
  # Delegate authentication to the event emitter.
79
91
  response = event_emitter.authenticate(request)
92
+ if client_token is not None:
93
+ if isinstance(response, dict):
94
+ response["statezero_sync_token_match"] = True
95
+ else:
96
+ response = {
97
+ "auth": response,
98
+ "statezero_sync_token_match": True,
99
+ }
80
100
  logger.debug(f"Authentication successful for channel: {channel_name}")
81
101
  return Response(response, status=status.HTTP_200_OK)
82
102
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: statezero
3
- Version: 0.1.0b64
3
+ Version: 0.1.0b65
4
4
  Summary: Connect your Python backend to a modern JavaScript SPA frontend with 90% less complexity.
5
5
  Author-email: Robert <robert.herring@statezero.dev>
6
6
  Project-URL: homepage, https://www.statezero.dev
@@ -21,7 +21,7 @@ statezero/adaptors/django/signals.py,sha256=bL_-vGEFUBbDhCdO7vCXdHcRBWLcs2R7e2mk
21
21
  statezero/adaptors/django/testing.py,sha256=mRPtDMGGTVe3OFfzIx7uIiiWuuE3Lw15teMJHMU_erw,4818
22
22
  statezero/adaptors/django/urls.py,sha256=sPalAG8ZCrNbs5u8IV3xzwUGe9tRRgh-WRh0D3BQ2BA,1036
23
23
  statezero/adaptors/django/utils.py,sha256=EyRc-R4P47L6eYufDwd1ZADU9Lz9NCVaORmxZdkgu5M,14666
24
- statezero/adaptors/django/views.py,sha256=aJFX7hO5ql4tAK4veSwcJAQui2No77imd0IqFGzBNao,24407
24
+ statezero/adaptors/django/views.py,sha256=SE0j3zxByQ7tBX94-qBgFdTvdQ1yRHWi-McKsVahKR4,25227
25
25
  statezero/adaptors/django/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  statezero/adaptors/django/extensions/simple_history.py,sha256=jksS8N6EWE-0raB0qMT-aAHqxibrVvwqTCGlwW7UiNE,1947
27
27
  statezero/adaptors/django/extensions/custom_field_serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -51,7 +51,7 @@ statezero/core/process_request.py,sha256=s1yys2ms856KJxV-cIfnVIdMkrOW9nLfzyLor64
51
51
  statezero/core/query_cache.py,sha256=haEBdd4nCm8h8ugj8KmCHUbyiHApU4rv-9PncKJJCys,9528
52
52
  statezero/core/telemetry.py,sha256=EV2yLV6WAS-MTYCQSRQadiMgOD_ViJ_qUspgvbD0GqA,7757
53
53
  statezero/core/types.py,sha256=An57YP1sdd7u6eppXeKMoSudEn_6-Pb6UoC3IdR5E8w,916
54
- statezero-0.1.0b64.dist-info/METADATA,sha256=w9RB4CSkF-uQ5WZSRrYb2D_kHFwtXu-V216Pe229kAM,9872
55
- statezero-0.1.0b64.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
56
- statezero-0.1.0b64.dist-info/top_level.txt,sha256=UAuZYPKczradU1kcMQxsGjUzEW0qdgsqzhXyscrcLpw,10
57
- statezero-0.1.0b64.dist-info/RECORD,,
54
+ statezero-0.1.0b65.dist-info/METADATA,sha256=FvwaAGB2Soi7B43kfR2QspCtY9pypvHRD8C3WFlquUE,9872
55
+ statezero-0.1.0b65.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
56
+ statezero-0.1.0b65.dist-info/top_level.txt,sha256=UAuZYPKczradU1kcMQxsGjUzEW0qdgsqzhXyscrcLpw,10
57
+ statezero-0.1.0b65.dist-info/RECORD,,