uniapp進行微信小程序開發時,用戶信息的獲取以及登錄方面梳理:
<template>
<view>
<!-- 如果用手機號登錄,獲取手機號碼相關信息 -->
<button type="primary" open-type="getPhoneNumber" lang="zh_CN" @getphonenumber="getPhoneNumber">手機號一鍵登錄</button>
<!-- 如果用微信登錄,獲取微信相關用戶信息 -->
<button open-type="getUserInfo" lang="zh_CN" @getuserinfo="onGotUserInfo">獲取用戶信息</button>
</view>
</template>
<script>
export default {
data() {
return {}
},
onLoad() {
// 執行查看授權選項
this.getSettingMes();
},
methods: {
// 查看已授權選項
getSettingMes() {
let _this = this;
uni.getSetting({
success(res) {
if (res.authSetting['scope.userInfo']) {
// 用戶信息已授權,獲取用戶信息
uni.getUserInfo({
success(res) {
console.log(res);
},
fail() {
console.log("獲取用戶信息失敗")
}
})
} else if (!res.authSetting['scope.userInfo']) {
console.log("需要點擊按鈕手動授權")
}
},
fail() {
console.log("獲取已授權選項失敗")
}
})
},
// 手動授權方法
onGotUserInfo(e) {
// 獲取用戶信息
uni.getUserInfo({
// 獲取信息成功
success(res) {
console.log(res);
// 成功后進行登錄,獲取code
uni.login({
success (res) {
console.log(res);
if (res.code) {
//發起網絡請求
uni.request({
// 請求路徑
url: 'https://test.com/onLogin',
// 請求參數code
data: {
code: res.code
},
method: 'GET',
success(res){
// 請求成功后獲取openid和session_key
console.log(res)
}
})
} else {
console.log('登錄失敗!' + res.errMsg)
}
}
})
},
fail() {
console.log("獲取用戶信息失敗");
}
})
},
// 手機登錄時獲取手機號碼相關信息的函數
getPhoneNumber(e) {
console.log(e);
}
}
}
</script>
附截圖:



