收藏
回答

uni.login app中微信授权登录 一直提示code无效,这是为什么?

下面是我app中微信授权的逻辑  ("onlyAuthorize": true, 这个必须配置 不然拿不到code只能拿到authResult)
1、前端配置的appid(wx520d4aa054ef41d1)正确的
2、code是通过官方uni.login(weixin)获取的 没有diao'yo
id: 690968d1-0cea7817-0d85783d"}

secret 也是正确的
3、接口请求 https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx520d4aa054ef41d1&secret=XXX&code=023T1fll2sxdBg4
y一致报错

{zfjol2o0EE7

4T1fl4&grant_type=authorization_codeX_token?appid=wx520d4aa054ef41d1&secret=XXX&code=&grant_type=authorization_code
y一致报错
{"errcode":40029,"errmsg":"invalid code, rid: 690968d1-0cea7817-0d85783d"}

secret 也是正确的

// 定义微信登录函数
const onWxLogin = () => {
  // 1. 获取登录服务提供商
  uni.getProvider({
    service: 'oauth',
    success: function (res) {
      console.log('可用的登录服务:', res.provider);


     // 检查是否支持微信
      if (!res.provider.includes('weixin')) {
        uni.showToast({ title: '当前环境不支持微信登录', icon: 'none' });
        return;
      }
      // 2. 调起微信登录
      uni.login({
        provider: 'weixin',
        "onlyAuthorize": true, // 微信登录仅请求授权认证
        success: function (loginRes) {
          console.log('微信登录成功:', loginRes);
          const code = loginRes.code; // App端,code 在 loginRes.code
          uni.showModal({
            content:code || JSON.stringify(loginRes)
          })
          if (!code) {
            uni.showToast({ title: '获取授权码失败', icon: 'none' });
            return;
          }
          api.appLoginApi({code: code}).then(res=>{
            console.log('app微信登录成功----', res)
            const backendData = res.data;
            if (backendData.success) {
              uni.setStorageSync('userToken', backendData.token);
              uni.showToast({ title: '登录成功' });
              uni.reLaunch({ url: '/pages/index/index' });
            } else {
              uni.showToast({ title: backendData.message || '登录失败', icon: 'none' });
            }
          }).catch((err)=>{
            console.log('err------app微信登录失败', err)
          })
        },
        fail: (err) => {
          console.error('微信登录失败:', err);
          uni.showToast({ title: '登录失败,请重试', icon: 'none' });
        }
      });
    },
    fail: (err) => {
      console.error('获取登录服务失败:', err.errMsg);
      uni.showModal({
        content:err.errMsg || '啥也没有'
      })
    }
  });


};

回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 本次回答由AI生成
    2025-11-04
    有用
登录 后发表内容