Initial project import
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user