Spaces:
Paused
Paused
| """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 | |