Initial project import

This commit is contained in:
XM
2026-09-18 03:46:58 +08:00
commit b600da4b76
209 changed files with 45904 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
"""PKCE (Proof Key for Code Exchange) 工具函数"""
from __future__ import annotations
import base64
import hashlib
import secrets
def generate_pkce() -> tuple[str, str]:
"""生成 PKCE code_verifier 与对应的 code_challenge(S256)。
Returns:
(code_verifier, code_challenge) 元组
"""
code_verifier = base64.urlsafe_b64encode(secrets.token_bytes(64)).rstrip(b"=").decode("ascii")
code_challenge = base64.urlsafe_b64encode(
hashlib.sha256(code_verifier.encode("ascii")).digest()
).rstrip(b"=").decode("ascii")
return code_verifier, code_challenge