小程序的登录流程详细讲解,获取code、reqId、当前登录人信息、手机号

1. 微信小程序的登录流程 appid
1==> 需要appid,当你开发一个小程序的时候,
都会有一个appid,每一个小程序对应一个appid;
所以这个appid是前端是可以获取的哈;
2. 如何获取code,code是由时效的哈,需要注意一下
code的时效有5分钟,在用户点击登录授权的时候,通过回调函数来解决。
还有一种方式:在点击按钮的时候,
调用uni.login({ })在成功函数去获取用户的基本信息
uni.login({
     success(res) {
	      console.log(res.code);//输出来的是一个对象
	 }
})

输出来的内容
 /**
code: "043qFf1w34Nl1W2dGK1w38ltyD2qFfXXX"
 errMsg: "login:ok"
 **/
3. 通过接口获取reqId

reqId 是后端返回的;通过appid和code去换取reqId;

appId: "wx2f0c2f7bb65XXXX"
code: "0533mh1w3xKo1W2VNU2w3Bq1D623mh1h"
将appId和code作为参数获取reqId 
4. 获取当前登录人的基本信息
<button open-type="getUserInfo" @getuserinfo="getuserinfo">
      获取用户信息
</button>

//下面这个写法,解决了code的时效问题,
getuserinfo() {
	 uni.login({
		 provider: 'weixin',
		 success: function (loginRes) {
			console.log('loginRes',loginRes.code);//获取的是code
			  // 获取用户信息
			   uni.getUserInfo({
			  provider: 'weixin',
			   success: function (infoRes) {
			   		 console.log('用户授权的一些基本信息:' , infoRes);
			   }
			});
		  }
	});
},

Z(S}KEC$1C@`FYGADMHSWSA.png

4.获取手机号
<button  open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信手机号一键绑定</button>

getPhoneNumber(e) {
   if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
   		console.log('用户拒绝提供手机号');
   } else {
   		console.log('用户同意提供手机号');
   		uni.login({
   			provider: 'weixin',
   			success({errMsg,code}) {
   				if (errMsg == "login:ok") {
   					//解密手机号需要的参数
   					let  params = {
   						code: code,
   						iv: e.detail.iv,
   					   encryptedData: e.detail.encryptedData,
   					}
   					//请求交互解密手机号
   				}
   			}
   		});
   }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值