微信小程序授权登录界面-金沙1005

微信小程序授权登录界面_qq小程序怎么授权登录注意:首先微信小程序是不能一进入小程序就让用户授权登录的,一进入小程序就让用户授权登录,是审核不通过的;要想弹出微信的微信授权提示框,必须用一个按钮来触发,可用授权登录这个按钮来让微信授权这个弹窗显示,首先,我们先来看一张微信小程序的授权登录流程图是不是一看这张逻辑图,一下子就觉得逻辑清晰了许多呢如果还是不理解的话也没关系,下面我们通过代码来实现一下微信小程序的授权登录微信授权登录的具体实现步骤:第一步,在用户进入小程序的时候,我们需要先判断一下用户是否授权过此小程序注:可以通过[wx.g

注意:首先微信小程序是不能一进入小程序就让用户授权登录的,一进入小程序就让用户授权登录,是审核不通过的;
要想弹出微信的微信授权提示框,必须用一个按钮来触发,可用授权登录这个按钮来让微信授权这个弹窗显示,

在这里插入图片描述

首先,我们先来看一张微信小程序的授权登录流程图
在这里插入图片描述
是不是一看这张逻辑图,一下子就觉得逻辑清晰了许多呢

如果还是不理解的话也没关系,下面我们通过代码来实现一下微信小程序的授权登录

微信授权登录的具体实现步骤:

第一步,在用户进入小程序的时候,我们需要先判断一下用户是否授权过此小程序
注:可以通过

    //  wx.getsetting方法获取用户的当前设置(判断是否授权)
    wx.getsetting({ 
   
      success: res => { 
   //调用成功后的回调参数
        console.log(res);
        // 判断是否授权
        
        if (res.authsetting['scope.userinfo']) { 
   
        //如果res.authsetting['scope.userinfo']有值时,代表已授权
          wx.getuserinfo({ 
   
            success: res => { 
   
              console.log(res);
              if (res.userinfo) { 
   
                console.log(1);
                this.setdata({ 
   
                  userinfo: res.userinfo,
                  flag: true
                })
              }
            }
          })
        }
      }
    })
微信小程序授权登录界面_qq小程序怎么授权登录

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

第二步、如果没有授权的话,我们就还可以通过一个按钮来实现授权登录

//在微信小程序开发文档中,我们可以知道当button组件的open-type="getuserinfo" 并结合bindgetuserinfo事件,可以获取到用户信息(是否授权)
 
<button open-type="getuserinfo" bindgetuserinfo="getuserinfo">授权</button>

第三步、通过事件,我们可以获取到用户的个人信息、加密后的偏移数据、加密后的用户信息(通过e.detail来获取)

getuserinfo(e){ 
   
 
     console.log(e.detail);//可以获取到个人的信息、加密偏移数据、加密用户信息
 
}

第四步用户可以选择授权登录,当然也可以取消授权登录了呀

//我们可以判断一下  如果用户授权了的话
    if (e.detail.userinfo) { 
   
      // 获取code 给后台传的
      //我们就通过wx.login({ 
   })来写登录事件
      wx.login({ 
   
        success: async res => { 
   //成功的回调
          //  console.log(res);
          //获取到临时的凭证code码
          //我们这里把code赋值给一个变量
          let code = res.code
          // 调用登录接口  把code码传上
          let { 
   
            data
          } = await request("zhangmengyi/user/wxapp/login", { 
   
            code
          }, "post")
          console.log(data);
          //获取到登录接口  是不是新用户
          // 判断是否已经有用户信息  是否注册
         // 登录接口code码返回10000时,代表未注册,返回0时,代表注册过
          if (data.code == 10000) { 
   
            // 如果没有注册过的话  我们就
            wx.login({ 
   
              success: async res => { 
   
                // 通过  wx.getuserinfo再次获取用户信息  获取加密字段
                wx.getuserinfo({ 
   
                  success: async user => { 
   
                    console.log(user);
                    //  请求注册接口
                    let { 
   
                      data: zhuce
                    } = await request("zhangmengyi/user/wxapp/register/complex", { 
   
                      encrypteddata: user.encrypteddata,
                      iv: user.iv,
                      code: res.code
                    }, "post")
                    // console.log(zhuce);
                    // 注册成功再请求登录 
                    let { 
   
                      data
                    } = await request("zhangmengyi/user/wxapp/login", { 
   
                      cose: res.code
                    }, "post")
                    console.log(data);
                    // 登录成功,把token存入本地
                    wx.setstoragesync('token', data.data.token)
                        然后更新一下试图 用户的id跟昵称
                    this.setdata({ 
   
                      uid: data.data.uid,
                      userinfo: e.detail.userinfo,
                    })
                    // 保存uid到本地
                    wx.setstorage('uid', data.data.uid)
                  }
                })
              }
            })
          } else { 
   
          如果注册过了,是老用户的话  我们就直接更新视图   获取到用户的1个人信息
            this.setdata({ 
   
              uid: data.data.uid,
              userinfo: e.detail.userinfo,
            })
            然后把token和uid保存到本地    为什么只保存uid不保存昵称呢
            是因为uid的话一重新编译就会不显示,所欲我们需要保存一下
            wx.setstoragesync('token', data.data.token)
            wx.setstoragesync('uid', data.data.uid)
          }
        }
      })
    }

到这里,微信登录的逻辑就完成了~~~~

注:wx.login()方法,在成功回调可以获取临时登录凭证(code),需要先获取,在调用。多次调用,在每次调用前都要获取。临时登录凭证 code 只能使用一次
会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

在这里插入图片描述

如果有不懂的或者觉的这样写不太好的大佬们,前辈们,欢迎留言请教或者指点哦🤭

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/121460.html

(0)

相关推荐

  • 小程序获取当前位置,回到当前位置,地图定位,导航效果因为小程序更新了获取地理位置api接口,需要先在app.json中配置一下permission字段,不然会报微信小程序getlocation需要在app.json中声明permission字段app.json:(不知道具体位置可以看这里,这里有整个app.json的配置)”permission”:{…

  • 微信小程序热门小游戏_微信多人游戏小程序微信小程序、微信小游戏作品汇总合集,各种好玩的小程序小程序:微信小程序:易阅小程序作品展示微信小程序:幸福磁县小程序作品展示微信小程序:小说精品榜小程序作品展示微信小程序:武汉智慧交警小程序作品展示微信小程序:微信法务小程序作品展示微信小程序:外交部12308小程序作品展示微信小程序:书灯阅读小程序作品展示微信小程序:人民网地方领导留言板小程序作品展示微信小程序:奇热小说小程序作品展示微信小程序:…

  • 多肉成长记app使用说明_多肉识图1️⃣多肉植物图鉴微信小程序2️⃣快递邮寄微信小程序3️⃣金融理财计算器微信小程序4️⃣番茄时钟微信小程序5️⃣二十四节气微信小程序6️⃣资源链接走过路过,就点个赞吧呗!送你小心心哦💞💞💞……

    2022年11月16日
  • 微信小程序 反编译_超简单的反编译微信小程序教程步骤一:获取小程序的.wxapkg包(1)安装手机模拟器,比如说夜神、mumu(https://mumu.163.com/360/)(2)下载和安装应用,微信和re文件管理器(3)开启root权限(4)打开微信,搜索相对应的小程序,然后再打开re文件管理器,定位到目录:安卓:/data/data/com.tencent.mm/micromsg/【一个32位的16进制字符串名文件夹…

  • 微信小程序日期转换时间戳微信小程序日期转换时间戳安卓正常,ios需要转换。微信小程序内,字符串时间转换为时间戳如果字符串格式为”2020-02-0215:35:08″,此时直接newdate(“2020-02-0215:35:08″)是转换不成功的。需要将字符串中的”-“转换为”/”。varudate=”2020-02-0215:35:08″;//需要先将”-“转换为”/”;udate=udate.replace(/-/g,’/’);…

    2022年10月21日
  • 微信小程序累计访问人数_微信访客记录app3.选择数据看板-访问核心数据-,累计用户数就可以看到了。下面是我的小程序,感兴趣的可以扫一扫。

  • 前端微信小程序开发面试题_前端微信小程序开发面试题双向数据绑定1普通的数据绑定是没有响应式的使数据具有响应式//使用setdata赋值,使其拥有响应式,达到双向数据绑定的效果this.setdata({dataall:this.data.dataall,})2使用model:前缀来使数据绑定具有响应式父子组件传值定义子组件…

  • 微信小程序轮播图点击跳转页面「建议收藏」index/wmxl代码

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图