至尊技术网 - 昵称
type: channel
link: https://www.zzwws.cn/tag/%E6%98%B5%E7%A7%B0/
items: 微信小程序开发用户授权登录、获取手机号、昵称、头像

微信小程序开发用户授权登录、获取手机号、昵称、头像
type: item
date: 2022-02-28T11:51:00+08:00
description: login.wxml 获取头像昵称 授权登录 获取手机号 server.js// 服务接口地址 const base = 'http://localhost/'; // 开放接口配置 export default{ apiUrl:base + 'api.php' } login.js//加载公共api文件server.js import API from '../../config/server.js' Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function () { this.userLogin(); var uid = wx.getStorageSync('uid'); console.log(uid); }, userLogin(){ if(!wx.getStorageSync('uid')){ onLogin() }else{ wx.request({ url: API.apiUrl, method: 'post', data: {act: 'isUser',id: wx.getStorageSync('uid')}, success: function(res){ if(res.data.code == -1){ onLogin() }else{ wx.checkSession({ success () { //session_key 未过期，并且在本生命周期一直有效 console.log('已登录'); var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length-1] //获取当前页面的对象 var url = currentPage.route //当前页面url var options = currentPage.options //如果要获取url中所带的参数可以查看options console.log(url) if(url.indexOf('/login') != -1){ wx.navigateBack({ delta: 2 }) } }, fail () { // session_key 已经失效，需要重新执行登录流程 onLogin() //重新登录 console.log('未登录'); } }) } } }) } }, onLogin() { wx.login({ success (res) { if (res.code) { //发起网络请求 wx.request({ url: API.apiUrl, method: 'post', data: { act: 'onLogin', code: res.code }, success:function(res){ console.log(res.data) if(res.data.code == 0){ wx.setStorage({key: 'uid',data: res.data.id}) }else{ wx.showToast({ title: '获取用户id失败', icon: 'error' }) setTimeout(() => { this.onLogin(); }, 1500); } } }) } else { console.log('登录失败！' + res.errMsg) } } }) }, getUserProfile(e){ wx.getUserProfile({ desc: '用于完善会员资料', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写 success: (res) => { console.log(res.userInfo) wx.setStorage({key: 'userInfo',data: res.userInfo}) } }) }, getPhoneNumber (e) { console.log(e.detail.code) wx.request({ url: API.apiUrl, method: 'post', data: { act: 'getPhone', code: e.detail.code }, success:function(res){ console.log(res.data) if(res.data.code != 0){ wx.showToast({ title: res.data.msg, icon: 'error' }) }else{ wx.setStorage({key: 'phone',data: res.data.phone}) } } }) } }) …