一:微信小程序中的登录
主要思路:
(1)用button组件的open-type="getUserInfo"属性获取用户信息;
(2)用uni.login 方法获取唯一的标识码code,将获取到的所需参数通过接口传给后端;
(3)后端返回成功回调数据,将所需要的信息存入缓存。
具体实现:
1:在页面中使用 button 组件的 open-type属性获取用户信息
<!-- 微信登录 -->
<!-- #ifdef MP-WEIXIN -->
<button @getuserinfo='getUserInfo' open-type="getUserInfo" type="primary" class='login'>微信授权登录</button>
<!-- #endif -->
2:授权登录
getUserInfo(e) {
let _this = this;
let ret=e.detail;
if(ret.errMsg == "getUserInfo:fail auth deny") {
_this.$api.toast("为了更好的服务,请同意授权"); //自己封装第一个提示方法
}else if(ret.errMsg == "getUserInfo:ok") {
_this.userLogin(e.detail);
}else {
_this.$api.toast("授权失败")
}
},
3:登录接口
userLogin(e) {
let _this = this ;
uni.login({
success: res => {
let code = res.code;
if(code){
//登录参数
let data={
code: code,
signature:e.signature,
iv:e.iv,
encryptedData:e.encryptedData,
rawData:e.rawData,
shop_id:_this.$store.state.shopId || 0
}
//调登录接口
_this.$api.ajax('smdc/index/login',data,function(ret){
console.log("登录成功回调",ret.token);
uni.navigateBack();
},'POST',true);
}
},
fail: () => {
_this.$api.toast("没有获取到登陆信息,请重试")
}
});
}
以上就是小程序微信登录的所有大概流程。over~