TikTok API获取授权码遇Redirect_URI无效请求错误求助
TikTok API授权请求返回
invalid_request/redirect_uri错误的排查与修复 核心问题定位
从错误响应和代码来看,存在两个关键问题:
code_challenge参数格式错误且生成逻辑不符合PKCE规范
错误响应中的code_challenge解码后为{'d85aea26bf0fded67f98fa487aab480061ca0d00786dbd064399fe93d06b5704'},包含多余的大括号和单引号,说明你的__generateRandomString(64)返回的不是纯随机字符串,而是带容器格式的内容。同时,TikTok的PKCE流程要求code_challenge必须是code_verifier(随机字符串)经过SHA-256哈希后再做Base64URL编码的结果,而非直接使用随机字符串。测试环境使用了生产环境授权URL
你使用的是测试密钥(staging keys),但调用的是生产环境的授权地址https://www.tiktok.com/v2/auth/authorize/,测试密钥仅能在staging环境生效。
修复方案
1. 修正PKCE参数生成逻辑
替换错误的code_challenge生成方式,严格遵循PKCE规范实现:
import secrets import hashlib import base64 import urllib.parse def generate_pkce_pair(): # 生成符合要求的code_verifier(长度43-128字符) code_verifier = secrets.token_urlsafe(96) # 计算SHA-256哈希并做Base64URL编码 sha256_hash = hashlib.sha256(code_verifier.encode('utf-8')).digest() code_challenge = base64.urlsafe_b64encode(sha256_hash).decode('utf-8').rstrip('=') return code_verifier, code_challenge def getAuthorizationURL(): # 测试环境使用staging授权URL AUTHORIZE_URL = 'https://staging.tiktok.com/v2/auth/authorize/' csrf_state = secrets.token_hex(16) code_verifier, code_challenge = generate_pkce_pair() # 务必保存code_verifier,后续换取access_token时需要提交 # 可通过state关联存储到session或缓存中 params = { 'client_key': Auth.tiktok_client_key, 'scope': 'user.info.basic', 'response_type': 'code', 'redirect_uri': Auth.tiktok_redirect_uri, 'state': csrf_state, 'code_challenge': code_challenge, 'code_challenge_method': 'S256' } url = AUTHORIZE_URL + '?' + urllib.parse.urlencode(params) return url
2. 切换到测试环境授权URL
将AUTHORIZE_URL替换为staging环境地址:https://staging.tiktok.com/v2/auth/authorize/,测试密钥无法在生产环境通过验证。
3. 再次校验Redirect URI配置
登录TikTok开发者后台,确认Login Kit配置中的Redirect URI与代码中的Auth.tiktok_redirect_uri完全一致,包括:
- 协议(测试环境允许http)
- 主机地址(必须是
127.0.0.1,不能混用localhost,除非后台也配置了localhost) - 端口号(8080)
- 路径末尾的斜杠(
/callback/需与配置完全匹配)
额外注意事项
- 保存
code_verifier:后续用授权码换取access_token时,必须提交对应的code_verifier,否则会触发验证失败。 - 网络访问:确保你的服务器/本地环境可以正常访问
staging.tiktok.com,部分网络环境可能存在访问限制。
内容的提问来源于stack exchange,提问作者kodknight
相关产品推荐
相关产品推荐

