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

GitHub OAuth Access Token删除失败:403错误提示需启用Cookies求解决方案

解决方案:修复GitHub Access Token删除请求的403错误

问题根源

你遇到的403错误是因为调用GitHub的token删除接口时,缺少正确的身份验证方式,且请求体格式不符合要求。该接口需要使用Basic认证(基于客户端ID和客户端密码),而非依赖浏览器Cookie;同时请求体必须以x-www-form-urlencoded格式发送,而非JSON。

具体修改步骤

  • 添加Basic认证头:将客户端ID与客户端密码用冒号拼接后做Base64编码,放入请求的Authorization头中
  • 调整请求体格式:把请求数据转换为URL编码字符串,适配接口要求的application/x-www-form-urlencoded类型
  • 补全请求配置:指定正确的Content-Type头,确保axios按要求发送数据

修改后的代码

const axios = require('axios');
const { Buffer } = require('buffer');

module.exports = async (req, res) => {
  const accessToken = req.body.accessToken;
  // 替换为你的实际客户端ID和密码
  const CLIENT_ID = '你的客户端ID';
  const CLIENT_SECRET = '你的客户端密码';

  try {
    // 生成Basic认证的Base64编码串
    const authString = `${CLIENT_ID}:${CLIENT_SECRET}`;
    const authBase64 = Buffer.from(authString).toString('base64');

    const response = await axios.delete(
      `https://github.com/applications/${CLIENT_ID}/token`,
      {
        headers: {
          'Authorization': `Basic ${authBase64}`,
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        // 将数据转为URL编码格式
        data: new URLSearchParams({
          access_token: accessToken
        })
      }
    );
    res.status(205).send('히히 성공했다 카이');
  } catch (e) {
    console.log('에러');
    console.log(e.response?.data || e.message);
  }
};

关键说明

  • Basic认证是服务器端调用该接口的标准方式,GitHub不会依赖浏览器Cookie做服务端请求的身份校验
  • 该接口不支持JSON格式请求体,必须用URLSearchParams处理数据
  • 客户端密码属于敏感信息,务必只在后端环境使用,禁止暴露到前端代码中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:36:24