在uni-app中的授权有些许不同,uni-app的button组件


<button class="logo" open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo"
:hover-class="!isLogin ? 'logo-hover' : ''">
<image class="logo-img" :src="isLogin ? avatarUrl :logo" style="float:left;"></image>
<view class="logo-title" style="float:right;">
<text class="uer-name">Hi{{isLogin ? nickName : '您未登录'}}</text>
<text class="go-login-navigat-arrow navigat-arrow" v-if="!isLogin">&#xe65e;</text>
</view>
</button>
//登录
login() {
let _this = this;
uni.showLoading({
title: '登录中...'
});

// 1.wx获取登录用户code
uni.login({
provider: 'weixin',
success: function(loginRes) {
let code = loginRes.code;
if (!_this.isCanUse) {
//非第一次授权获取用户信息
uni.getUserInfo({
provider: 'weixin',
success: function(infoRes) {
//获取用户信息后向调用信息更新方法
let nickName = infoRes.userInfo.nickName; //昵称
let avatarUrl = infoRes.userInfo.avatarUrl; //头像
_this.updateUserInfo(); //调用更新信息方法
}
});
}

//2.将用户登录code传递到后台置换用户SessionKeyOpenId等信息
uni.request({
url: _this.websiteUrl,
data: {
code: code,
},
method: 'GET',
header: {
'content-type': 'application/json'
},
success: (res) => {
//openId、或SessionKdy存储//隐藏loading
uni.hideLoading();
}
});
},
});
},
//向后台更新信息
updateUserInfo() {
let _this = this;
uni.request({
url: _this.websiteUrl, //服务器端地址
data: {
appKey: this.$store.state.appKey,
customerId: _this.customerId,
nickName: _this.nickName,
headUrl: _this.avatarUrl
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success: (res) => {
if (res.data.state == "success") {
uni.reLaunch({ //信息更新成功后跳转到小程序首页
url: '/pages/index/index'
});
}
}

});
}
},
onLoad() { //默认加载
this.login();
}