小程序云开发-登录功能(授权登录)
⼩程序云开发-登录功能(授权登录)
⼀、创建页⾯load
创建页⾯load
⼆、需求说明
登录之前,【我的】头像和⽂字显⽰为默认显⽰。授权登录成功之后,【我的】头像和⽂字分别获取头像和名字。
三、代码实现(授权登录页⾯)
1、load.wxml
钢筋今日价格一览表1<view class="loadType">
2<button type="primary" bindtap="loadByWechat">授权登录</button>
3<button type="primary" plain="true" bindtap="loadByPhone">⼿机号码登录</button>
4<button type="primary" plain="true" bindtap="loadByAccount">账号密码登录</button>
5</view>
2、load.wxss
1.loadType{
2  margin-top: 800rpx;
3 }
4button{
5  margin-top: 20rpx;
6 }
3、load.js
授权登录获取⽤户信息(wx.getUserProfile函数)
携带⽤户登录头像和名字跳转到tab页⾯(wx.reLaunch函数)
将获取的⽤户信息保存到缓存中(wx.setStorageSync函数)
1 Page({
java程序员工资待遇
2
3//授权登录
4  loadByWechat(){
5    wx.getUserProfile({
6      desc: '⽤户完善会员资料',
7    })
8    .then(res=>{
9    console.log("⽤户允许了授权登录",res.userInfo);
10//注意:此时不能使⽤ wx.switchTab,不⽀持参数传递
11    wx.reLaunch({
12//将头像和名称传递给【我的】页⾯
13      url: '/pages/me/me?nickName='+res.userInfo.nickName+'&avatarUrl='+res.userInfo.avatarUrl,
14    })
15//保存⽤户登录信息到缓存
16    wx.setStorageSync('userInfo', res.userInfo)
17    })
18    .catch(err=>{
19      console.log("⽤户拒绝了授权登录",err);
20    })
qq消息密码忘记了怎么办21  },
22
23//跳转到⼿机号码登录页
24  loadByPhone(){
菠萝蜜去粘液一区25    wx.navigateTo({
26      url: '/pages/loadByPhone/loadByPhone',
27    })
28  },
29
30//跳转到账号密码登录页
31  loadByAccount(){
32    wx.navigateTo({
33      url: '/pages/loadByAccount/loadByAccount',
34    })
35  },
36
37 })
四、代码实现(我的页⾯)
1、me.wxml
1<!--未登录-->
2<view class="load" wx:if="{{!loginOk}}">
3<image src="../../images/我的.png" bindtap="load"></image>
4<text class="clickload" bindtap="load">点击登录</text>
5</view>
6<!--已登录-->
7<view wx:else>
8<view class="load">
9<image src="{{avatarUrl}}"></image>
10<text class="clickload">{{nickName}}</text>
11</view>
12<button class="exit" bindtap="exit" type="primary">退出登录</button>
13</view>
2、me.wxss
1.load{
2  background-color:#04BE02;
3  width: 100%;
4  height: 400rpx;
5/*设置图⽚和⽂字垂直居中对齐*/
6  display: flex;
省份简称7  flex-direction: column;
8  justify-content: center;
9  align-items: center;
10 }
11
12.load image{
13  width: 200rpx;
14  height: 200rpx;
15  border-radius: 50%;
16 }
17.load text{
18  color:white;
19 }
21  width: 95%;
22  margin-top: 40rpx;
23 }
3、me.js
onLoad:页⾯加载的时候,获取load页⾯传过来的头像和名字onShow:根据缓存数据,来控制已登录/未登录的页⾯切换显⽰
退出登录后,清空⽤户信息的缓存数据
1 Page({
2
3/**
4  * 页⾯的初始数据
5*/
6  data: {
7    loginOk:true,
8    nickName:"",
9    avatarUrl:"",
10  },
11
12//页⾯加载的时候,将load页⾯传过来的值获取过来
13  onLoad: function (options) {
14    console.log("这⾥的options",options);
15this.setData({
16      nickName:options.nickName,
17      avatarUrl:options.avatarUrl
18    })
19  },
20
21//⼩程序声明周期的可见性函数⾥⾯来控制显⽰
22  onShow(){
23    let userInfo = wx.getStorageSync('userInfo')
24    console.log("我的缓存信息",userInfo);
25if(userInfo){
26this.setData({
27        loginOk:true,
28        nickName:userInfo.nickName,  //从缓存中拿数据
29        avatarUrl:userInfo.avatarUrl
30      })
会计初级报名条件
31    }else{
32this.setData({
33        loginOk:false
34      })
35    }
36  },
37
38//点击登录
39  load(){
40    wx.navigateTo({
41      url: '/pages/load/load',
42    })
43  },
44
45//退出登录
46  exit(){
47    wx.showModal({
48      content:"确定退出吗"
49    }).then(res=>{
firm){
51      console.log("⽤户点击了确定"); 52this.setData({
53        loginOk:false
54      })
55//清空登录的缓存
56      wx.setStorageSync('userInfo', null)
57      }else if(res.cancel){
58        console.log("⽤户点击了取消");
59      }
60    })
61  },
62
63 })
五、效果展⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。