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

微信社交登录集成:如何从微信SDK获取auth code?

获取微信OAuth2授权码(Auth Code)的正确途径

我来帮你理清楚获取微信Auth Code的完整流程——这正是你调用access_token接口失败的关键缺失环节。根据不同的集成场景,获取code的方式略有不同,下面分情况说明:

1. 网页端/PC网站场景

要拿到code,首先得引导用户进入微信的授权页面,具体步骤如下:

  • 第一步:构造授权跳转链接,让用户点击这个链接跳转到微信的授权页。链接格式是:
    https://open.weixin.qq.com/connect/qrconnect?appid=你的APPID&redirect_uri=你的回调地址&response_type=code&scope=snsapi_login&state=自定义状态值#wechat_redirect
    
    这里有几个关键注意点:
    • redirect_uri必须是你在微信开放平台后台已备案的域名下的地址,而且需要做URL编码,比如http://www.example.com/callback要编码成http%3A%2F%2Fwww.example.com%2Fcallback。
    • scope参数如果是做网页登录,用snsapi_login就够了;如果需要获取用户基本信息,可以用snsapi_userinfo,按需选择。
    • state是自定义的字符串,用来防止CSRF攻击,授权成功后微信会原样返回这个值,建议加上。
  • 第二步:用户在微信授权页面点击「同意授权」后,微信会自动跳转到你设置的redirect_uri,此时URL的参数里就会带上code和state,比如http://www.example.com/callback?code=abc123&state=xyz,你直接从这个URL里提取code即可。

2. 移动端场景

微信内H5页面

如果是在微信浏览器里的H5应用,授权链接格式稍有不同:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的APPID&redirect_uri=你的回调地址&response_type=code&scope=snsapi_base&state=自定义状态值#wechat_redirect

同样要保证redirect_uri已备案且编码,用户授权后回调地址会携带code参数。

原生APP(Android/iOS)

如果你开发的是原生APP,不需要自己构造链接,直接调用微信官方提供的SDK授权接口即可。用户授权后,SDK会通过回调方法把code返回给你,按照SDK的文档处理回调就行。

容易踩的坑

  • 务必确保redirect_uri和微信后台配置的完全一致,包括协议(http/https)、域名、路径,哪怕多一个斜杠或者大小写不一致,都可能导致授权失败拿不到code。
  • response_type必须设置为code,这是获取授权码的核心参数,不能写错。
  • code是一次性的,有效期只有5分钟,拿到后要立刻调用access_token接口,过期就失效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:29:26