Thanks for reply!
I tried on my end again, but un-successful.
Could you tell me what is wrong with my python code? It fails only when the request body includes an Unicode emoji.
The python code I use for verification.
import hmac
import json
from hashlib import sha256
class HasVerifiedZoomSignature(BasePermission):
def has_permission(self, request, view):
secret_token = settings.ZOOM["SECRET_TOKEN"]
timestamp = request.headers.get("x-zm-request-timestamp")
signature = request.headers.get("x-zm-signature")
json_request = json.dumps(request.data, separators=(",", ":"), ensure_ascii=False)
message = f"v0:{timestamp}:{json_request}"
hashed_message = f"v0={hmac.new(secret_token.encode(), message.encode(), sha256).hexdigest()}"
result = signature == hashed_message
return result
Edit: I believe the case is the same as this one (the solution is not explained in the thread, though).