收藏
回答

微信类似下面这样的一键登录怎么实现的?

前端用手机号快速验证组件,传给后端一个code,后端用这个code调接口https://api.weixin.qq.com/wxa/business/getuserphonenumber拿到完整手机号,然后用完整手机号走自己的登录注册流程(换取token)?这个逻辑对吗?高人指点一下

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

4 个回答

  • 智能回答 智能回答 该问答由AI生成
    04-15
    有用 1
  • 散落在月光下
    散落在月光下
    04-30

    Page({

      GetPhoneNumber(e) {  // 方法名需与 WXML 中 bindgetphonenumber 绑定的一致

        if (e.detail.errMsg === 'getPhoneNumber:ok') {

          const phoneCode = e.detail.code;  // 使用 getPhoneNumber 返回的 code

          wx.request({

            url: 'xxxxxx',

            method: 'POST',

            data: { code: phoneCode },  // 仅传递手机号动态令牌

            success: (res) => {

              console.log('登录成功:', res.data);

              // 存储 token 或跳转页面

              if (res.data.token) {

                wx.setStorageSync('token', res.data.token);

                wx.reLaunch({ url: '/pages/index/index' });

              }

            },

            fail: (err) => {

              wx.showToast({ title: '网络请求失败', icon: 'none' });

            }

          });

        } else {

          wx.showToast({ title: '用户拒绝授权', icon: 'none' });

        }

      } 请问前端这样写正确吗,拿到正确手机号后把后端返回的token存储在本地

    });

    04-30
    有用
    回复
  • 风清雾散云开见日出
    风清雾散云开见日出
    04-15

    是的。

    04-15
    有用
    回复
  • showms
    showms
    04-15

    是的。但要求不登录手机号的情况下也要能正常访问其他页面,否则会审核不通过

    04-15
    有用
    回复 7
    • Sc.
      Sc.
      04-15
      自己的登录接口,只有一个手机号,没有别的验证方式,这样会不会有风险
      04-15
      回复
    • showms
      showms
      04-15回复Sc.
      没什么风险,用手机号验证就是多花点钱而已。其他的自己评估
      04-15
      回复
    • 从君华
      从君华
      04-15回复Sc.
      有什么风险?
      04-15
      回复
    • Sc.
      Sc.
      04-15回复从君华
      比如别人知道了你的接口,只需要任意传个手机号就能登录,拿到token
      04-15
      回复
    • 从君华
      从君华
      04-15回复Sc.
      ... 你先搞清楚微信手机号授权的流程吧,自己把时序图画出来,你的问题就自然而然解决了。
      04-15
      回复
    查看更多(2)
登录 后发表内容