评论

wx.login() 获取openid的方法

wx.login() 获取openid的具体程序

官方文档中给出了示例代码:

wx.login({
  success (res) {
    if (res.code) {
      //发起网络请求
      wx.request({
        url: 'https://example.com/onLogin',
        data: {
          code: res.code
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})

能用吗?经反复摸索,终于得到下述用法:

wx.login({
        success: res => {
            if (res.code) {
              let URL='https://api.weixin.qq.com/sns/jscode2session?appid=##################&secret=*****************
                                                         ***************&js_code='+res.code+'&grant_type=authorization_code'
              wx.request({
                url: URL , 
                 success:function(res){ 
                   console.log(res.data)//res.data中有openid
                }
              })
            }  
    } })
注:###......#为小程序ID;***……*为小程序密钥。res.code为临时获得的码。还得注意编译程序时本地设置中勾选“不校验合法域名”

小程序中的坑太多了!官方文档多单不实用!!!
最后一次编辑于  2022-10-29  
点赞 21
收藏
评论

14 个评论

  • 爱码士
    爱码士
    2023-01-05

    errmsg: "appid missing,

    还是有点问题啊,不知道是不是版本的原因,我的是uniapp小程序,不是原生的

    2023-01-05
    赞同
    回复
  • 跨商通
    跨商通
    2022-10-29

    "经反复摸索,终于得到下述用法"

    然而,正式版是不能这样用的。

    2022-10-29
    赞同
    回复 16
    • nono
      nono
      2022-10-30
      原来我用的是云开发里的云函数login,现在因收费太高,想用自己的服务器才这样的,照您这么说,正式版不让这么用,为何?
      2022-10-30
      回复
    • 跨商通
      跨商通
      2022-10-30回复nono
      https://api.weixin.qq.com,正式版,这个网址你是访问不了的。
      2022-10-30
      1
      回复
    • 跨商通
      跨商通
      2022-10-30回复nono
      另外,审核的时候,凡是代码里有secret的,都不让上线。
      2022-10-30
      2
      回复
    • nono
      nono
      2022-10-30
      那就是说:自己建服务器的小程序不让用openid作为身份凭证,要登录就得自己敲用户名、密码,小程序里用密码作为身份凭证。这是腾讯变相垄断啊!?,有什么道理吗?
      2022-10-30
      回复
    • 跨商通
      跨商通
      2022-10-30回复nono
      你明明没有“自己建服务器”吧?才会有这种情况。自己建服务器没有这种问题。https://api.weixin.qq.com,服务器上可以访问。你上面的代码是在小程序端访问,当然不行。
      2022-10-30
      3
      回复
    查看更多(11)
  • Frank
    Frank
    发表于小程序端
    2022-10-29

    得服务端去获取openid

    2022-10-29
    赞同
    回复 2
    • nono
      nono
      2022-10-30
      好像是我刚才的意思,谢谢点拨!
      2022-10-30
      回复
    • 手接原子弹
      手接原子弹
      2024-08-02回复nono
      严重了,你要是真的把openid放在了小程序种,别人可能有方法拿出来,让后拿去模拟你请求了吧!
      2024-08-02
      回复
  • WiTung
    WiTung
    2022-10-29

    习惯了就好,文档不是熟悉的人根本就看不懂的

    2022-10-29
    赞同
    回复 4
    • nono
      nono
      2022-10-30
      很多人是从小白开始的,看不懂这种文档,要教些实际的,套用即可的
      2022-10-30
      回复
    • nono
      nono
      2022-10-30
      url和data里应写些什么、怎么写完全取决于服务端,你不告诉清楚了,你不告诉清楚了别人怎么用,这不是习惯不习惯的问题!
      2022-10-30
      3
      回复
    • 蘋洲烟雨
      蘋洲烟雨
      2022-12-08回复nono
      我就是小白,还好有大哥在下面解惑了
      2022-12-08
      回复
    • 从前有座山,山上有只猫
      从前有座山,山上有只猫
      2023-03-21
      感谢
      2023-03-21
      回复

正在加载...

登录 后发表内容