uniapp微信小程序登录流程

1 访问微信接口获取用户授权 获取用户信息

2 获取code 

3向后端服务器发请求拿到token 缓存用户信息

//1 访问微信接口获取用户授权 获取用户信息
			login(){
				wx.getUserProfile({
				      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
				      success: res => {
				       console.log(res)
				   uni.setStorageSync('avatarUrl', res.userInfo.avatarUrl)
				   
				   this.encryptedData = res.encryptedData;
				   this.iv = res.iv
				  //2 获取code  
				  uni.login({
				   		//登录平台
				          provider: 'weixin',
				          success: loginRes => {
				         // getApp().globalData.code = loginRes.code
				            console.log('code:', loginRes.code)
				            this.code = loginRes.code
							
				          }
				        })
						//3向后端服务器发请求拿到token 缓存用户信息 
						
						this.getOpenId()
				      },
				      fail: res => {
				        console.log(res)
				      uni.showToast({
				      icon: 'none',
				      title: '获取授权失败,请重新授权',
				      duration: 1000
				       })
				      }
				     })
					
					},

4更新数据  例如用户头像 和处理其他业务

//4更新用户头像处理其他业务
				getOpenId(){
	            this.getopenids({
				code:this.code,
				encryptedData:this.encryptedData,
				iv:this.iv,
				}
				).then(res=>{
					uni.hideLoading()
					console.log('done',res);
					if(res.data.code == 1){
						uni.setStorageSync('token',res.data.data.userinfo.token)
						uni.setStorageSync('userinfo',res.data.data.userinfo)
						this.nickname=userInfo.nickName
						this.avatarUrl=userInfo.avatarUrl
						
						
					}else{
						uni.showToast({
							title:res.data.msg,
							icon:'none'
						})
					}
					
					
				})
				}

5下来在api接口文件请求头里动态获取token 即可在所有页面判断用户登录状态  实现拦截效果

return uni.request({
		url: getUrl(url),
		data: param,
		header: {
			token: uni.getStorageSync('token')
			// token: 123
		},
		...other,
	})

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值