与SSO和 '~' 字符有关的问题

经过进一步调查,我确实对其进行了错误的编码。

以下是我最终得到的代码,供以后参考:

return_payload = base64.b64encode(parse.urlencode(kwargs).encode("utf-8"))
h = hmac.new(secret.encode("utf-8"), return_payload, digestmod=hashlib.sha256)
resp = requests.post(
       ".../admin/users/sync_sso",
        data={"sso": return_payload, "sig": h.hexdigest()}
        headers={...}
)

如果您正在进行重定向,请确保对 {"sso"...} 进行 parse.urlencode 编码。

感谢 @sam@david 的帮助!

3 个赞