微信小程序登录

2021/7/2 20:51:23

本文主要是介绍微信小程序登录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

ttml部分,实现登录授权按钮 在组件中使用了if。。。else 。。。语句    (1)bindtap="bindgetuserinfo   绑定一个bindgetuserinfo   事件  (2)bindgetuserinfo="bindgetuserinfo"     绑定一个bindgetuserinfo   事件. 。bindgetuserinfo属性是微信getUserInfo()特有的事件绑定属性    注意:抖音不支持此种此  bindgetuserinfo="bindgetuserinfo"   改 为bindtap="bindgetuserinfo"     <view class="iw100 mt20">              <van-button type="danger" disabled="{{disAbled}}" color="linear-gradient(180deg, #99D0CD 0%, #60A39E 100%);"      round size="large"lang="zh_CN" wx:if="{{canIUseGetUserProfile}}" bindtap="bindgetuserinfo"> {{$.languageMap.sqdl}}     </van-button>      <van-button type="danger" disabled="{{disAbled}}" color="linear-gradient(180deg, #99D0CD 0%, #60A39E 100%);"      round size="large"lang="zh_CN" wx:else open-type="getUserInfo" bindgetuserinfo="bindgetuserinfo"> {{$.languageMap.sqdl}}   </van-button> <view>   js部分:   事件: bindgetuserinfo(e) {     let that = this     if (that.data.canIUseGetUserProfile) {       wx.getUserProfile({         desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写         success: (res) => {           let teminfo = res.userInfo;           that.setUserInfo(teminfo);         }       })     }else{       let teminfo = e.detail.userInfo       that.setUserInfo(teminfo);    //调用封装好的获取到后台传过来的数据的  setUserInfo()方法     }   },     //获取用户授权信息, setUserInfo(teminfo) {     let that = this;     let mainData = {       user_pics_url: teminfo.avatarUrl,     //用户头像       user_nickname: teminfo.nickName,   //用户昵称       user_sex: teminfo.gender === 0 ? '未知':(teminfo.gender === 1 ? '男' : '女'),       user_age: teminfo.user_age    //年龄     };    //拿到了用户数据之后,证明用户已经授权同意授权    //于是我们自动执行登录,调用内部的api     tt.login({       success: res => {                 store.data.code = res.code;         let data = {           'code': res.code,           'anonymous_code':res.anonymousCode

 

        };//登录的时候发起请求   web.webRequest()  里面封装了抖音请求tt.request()  和 微信wx.request() 方法         web.webRequest({           methods: 'POST',    //请求的方式           interface: 'reg',        //请求的接口           data: data               //请求参数   这是已经封装好了的参数对象。(根据所需安排,非必须的)         }).then(res => {        //promise  的箭头函数(无this对象)           tt.setStorageSync('sm_userinfo', res.result.data);           that.store.data.token = res.result.data.api_token;    //返回api_token           that.store.data.serviceInfo = res.result.data; // 判断有没有头像和昵称,用来更新用户信息           // store.data.isFirst = res.result.data.is_first

 

          that.store.data.sessionKey = res.result.data.session_key;           that.store.data.phoneNum = res.result.data.user_mobile;             //编辑用户的信息请求(这部分可以截至以上代码抽离出来作为修改信息使用),           web.webRequest({             methods: 'POST',             interface: 'edit',             data: mainData           }).then(res => {    返回更新后的用户数据             console.log(res, '更新用户信息成功');             that.store.data.userInfo = teminfo;             that.store.data.loseaut = false;             that.store.data.serviceInfo.user_pics = teminfo.avatarUrl;             that.store.data.serviceInfo.user_nickname = teminfo.nickName;             let temp = {               userInfo: teminfo,               user_pics: teminfo.avatarUrl,               user_nickname: teminfo.nickName             };             let temp1 = JSON.parse(JSON.stringify(tt.getStorageSync('sm_userinfo')));             let temp2 = Object.assign(temp, temp1);             tt.setStorageSync('sm_userinfo', temp2);    //存储用户信息             tt.navigateBack();                                        //返回上级菜单           });         });       }     });   },

    / /授权成功,触发返回指定路径

  onClickLeft() {     tt.switchTab({       url: '/pages/index/index'     });   }

这篇关于微信小程序登录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程