You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Flask与Authlib实现Token撤销端点时返回invalid_client错误

解决Flask+Authlib Token撤销端点返回"invalid_client"的问题

问题原因

你的撤销端点错误使用了@require_oauth()装饰器。Token撤销端点的设计逻辑是由客户端发起请求并验证自身身份,而非验证用户的访问令牌。@require_oauth()会强制要求请求携带有效的用户访问令牌,这和撤销端点的认证逻辑冲突,导致服务端无法正确识别客户端身份,返回invalid_client错误。

修复方案

移除@require_oauth()装饰器,确保客户端通过正确方式传递身份凭证(比如在请求头或表单中携带client_id和client_secret):

@app.route('/revoke', methods=['POST'])
def revoke_token():
    revocation_response = server.create_endpoint_response(
        AccessTokenRevocationEndpoint.ENDPOINT_NAME, request)
    return revocation_response

额外注意事项

  • 客户端发起撤销请求时,需按OAuth 2.0规范传递必要参数:
    • 必须包含token参数,指定要撤销的令牌
    • 客户端需通过Authorization头(Basic认证方式)或表单参数传递client_id和client_secret完成身份验证
  • 确保你的Authlib服务器实例已正确配置支持客户端认证的方式(比如client_authentication_methods)

内容的提问来源于stack exchange,提问作者Alexander P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:52:37