微信小程序登录获取不到头像和昵称解决办法!

2023-11-11

微信小程序登录获取不到头像和昵称主要原因是:小程序wx.getUserProfile接口被收回!

大家可以按照文档操作↓

PS:

针对小程序wx.getUserProfile接口将被收回后做出的授权调整

小程序文档中提出的调整说明
attachmentId-21993
attachmentId-21994
对于此次变化,现将小程序授权方式做以调整

添加判断当前基础库是否支持头像昵称填写能力
在根目录App.vue中加入判断基础库是否大于2.21.2版本(大于此版本支持头像/昵称填写能力)

// #ifdef MP
	const version = uni.getSystemInfoSync().SDKVersion
	if (Routine.compareVersion(version, '2.21.2') >= 0) {
		that.$Cache.set('MP_VERSION_ISNEW', true)
	} else {
		that.$Cache.set('MP_VERSION_ISNEW', false)
	}
// #endif

Copy
2.修改/pages/users/wechat_login.vue文件

(1) 在data中加入基础库判断,决定授权逻辑

mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false

Copy
(2)dom中新增逻辑判断
4704f202211101621275814.png
(3) methods中加入方法userLogin

// 小程序 22.11.8日删除getUserProfile 接口获取用户昵称头像
	userLogin() {
		Routine.getCode()
			.then(code => {
				uni.showLoading({
					title: '正在登录中'
				});
			    authLogin({
					code,
					spread_spid: app.globalData.spid,
					spread_code: app.globalData.code
				}).then(res => {
					if (res.data.key !== undefined && res.data.key) {
						uni.hideLoading();
						this.authKey = res.data.key;
						this.isPhoneBox = true;
					} else {
						uni.hideLoading();
						let time = res.data.expires_time - this.$Cache.time();
						this.$store.commit('LOGIN', {
							token: res.data.token,
							time: time
						});
						this.getUserInfo()
					}
	
				})
			})
			.catch(err => {
				console.log(err)
			});
	},

3.新增用户头像/昵称获取能力

(1)调整pages/users/user_info.vue文件
data中添加

mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false

(2)调整dom中
7fe26202211101620461344.png

(3)methods中加入方法

onChooseAvatar(e) {
	const { avatarUrl } = e.detail
	this.$util.uploadImgs('upload/image', avatarUrl, (res) => {
		this.userInfo.avatar = res.data.url
	}, (err) => {
		console.log(err)
	})
},

这里有一个公共方法uploadImgs需要在/utils/util.js中添加

uploadImgs(uploadUrl, filePath, successCallback, errorCallback) {
	let that = this;
	uni.uploadFile({
		url: HTTP_REQUEST_URL + '/api/' + uploadUrl,
		filePath: filePath,
		fileType: 'image',
		name: 'pics',
		formData: {
			'filename': 'pics'
		},
		header: {
			// #ifdef MP
			"Content-Type": "multipart/form-data",
			// #endif
			[TOKENNAME]: 'Bearer ' + store.state.app.token
		},
		success: (res) => {
			uni.hideLoading();
			if (res.statusCode == 403) {
				that.Tips({
					title: res.data
				});
			} else if (res.statusCode == 413) {
				that.Tips({
					title: '上传图片失败,请重新上传小尺寸图片'
				});
			} else {
				let data = res.data ? JSON.parse(res.data) : {};
				if (data.status == 200) {
					successCallback && successCallback(data)
					} else {
					errorCallback && errorCallback(data);
					that.Tips({
						title: data.msg
					});
				}
			}
		},
		fail: (err) => {
			uni.hideLoading();
				that.Tips({
				title: '上传图片失败'
			});
		}
	})
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序登录获取不到头像和昵称解决办法! 的相关文章

随机推荐

  • jdbc原理与步骤

    jdbc原理 1 加载JDBC驱动 并将其注册到DriverManager 2 建立数据库连接 获取connection对象 3 建立Statement对象或PreparedStatement对象 4 执行SQL语句 5 访问结果集Resu
  • 送本书《Python 之旅》

    在线阅读 下载 在线阅读 https www bookstack cn books explore python 下载 关注公众号马上码回复 pythonzl Python 是一门面向对象 解释型的高级程序设计语言 它的语法非常简洁 优雅
  • 分析游戏《明日方舟》的成功要素

    明日方舟 这个出身并不显赫 玩法也绝非时下主流的游戏一经上线 就在一个月内连续霸榜 在正式上线一个月的时候 顺理成章地登顶App Store畅销榜榜首 简单介绍游戏信息与核心玩法 游戏名称 明日方舟 英文名称 Arknights 制作厂商
  • element-ui el-tree树形控件 默认箭头更改

    这是基础性 那么怎么修改呢 很简单只需要在css中修改 注意 vue中修改需要添加 deep el icon arrow right color 49c0ff el table el table expand icon el icon ar
  • 秒杀多线程第十五篇 多线程十大经典案例之一 双线程读写队列数据

    秒杀多线程第十五篇 多线程十大经典案例之一 双线程读写队列数据 多线程十大经典案例之一双线程读写队列数据 案例描述 MFC对话框中一个按钮的响应函数实现两个功能 显示数据同时处理数据 因此开两个线程 一个线程显示数据 开了一个定时器 响应W
  • jdk 16中改进的ZGC

    内存对象重定位的优化 预留堆空间 heap reserve 是堆空间中特殊的一块小空间 无法用于java线程的常规分配 而当发生gc时需要进行对象重分配时才会使用 此举确保了空的堆区域可用 即使是在java线程角度看堆空间已满 仍可进行对象
  • arch/x86/entry/syscall_64.o:(.rodata+0xa78): undefined reference to `sys_get_pid_info‘

    今天添加系统调用以后 使用make指令编译内核的时候出现了 arch x86 entry syscall 64 o rodata 0xa78 undefined reference to sys myprint 这个错误 错误原因是我使用的
  • SVN创建分支与合并分支

    SVN创建分支与合并分支 SVN忽略target文件夹 SVN创建分支 SVN合并分支 merge a range of revisions merge two different trees 合并分支总结 SVN忽略target文件夹 鼠
  • Web安全神器-Burpsuite社区版/专业版下载、安装及使用教程

    一 Burpsuite下载 Burp Suite是进行Web应用安全测试的一个集成平台 无缝融合各种安全工具并提供全面的接口适配 支持完整的Web应用测试流程 从最初的映射和应用程序的攻击面分析到发现和利用安全漏洞等领域均适用 同时还可以做
  • google浏览器chrome安装插件方法

    该方法适合安装到一台没有联网的机器上使用 1 在可联网的浏览器 可以用极速浏览器 上 打开扩展程序 搜到要安装的插件并安装 2 地址栏输入 chrome version 查看个人资料路径 该目录下的Extensions就是插件安装位置 3
  • 3D 重构的一些应用场景

    3D 重构是利用2D 照片合成3D 图像 3D重构也是人工智能领域的一个分支 因为业界有很多应用 所以记下来 供大家参考 第一次遇到3D重构的课题是老东家在物流领域的业务场景 后来发现 3D重构的应用场景还真不少 3D重构一个重要指标是精准
  • 移植lwIP至U-Boot

    原文地址 http www wl chuang com blog 2011 11 04 porting lwip to uboot U Boot是嵌入式系統上被廣為運用的boot loader 它擁有極為活躍的開發社群 也支援許多不同類型的
  • hadoop在windows上的环境配置及HDFS API编程示范

    1 将Hadoop压缩包解压放在指定目录 2 Hadoop本地环境配置 新建一个HADOOP HOME 添加path 3 安装maven 解决java开发依赖问题 这里可以直接去官网上下载 https maven apache org
  • C#基础知识篇:C#网络编程(Socket)使用poll函数判断连接断开问题

    C Socket使用poll函数判断连接断开问题 最近在学习c 的网络编程内容 遇到这样一个问题 在服务器端 如何判断客户端的一个连接是否断开 查找相关资料 得出较好的解决方案是使用socket对象的poll函数 poll函数分析 下面是p
  • 力扣2414:最长的字母序连续子字符串的长度

    311周赛第二题 原题链接 2414 最长的字母序连续子字符串的长度 题目 字母序连续字符串 是由字母表中连续字母组成的字符串 换句话说 字符串 abcdefghijklmnopqrstuvwxyz 的任意子字符串都是 字母序连续字符串 例
  • 计算机网络是由负责,计算机网络应用基础

    41 当进行网络互联时 如果总线网的网段已超过最大距离 可用 来增强信号 以便使信号传输更远的距离 A 中继器 B 网卡 C 网关 D 路由器 42 网络中所使用的互联设备Hub称为 A 集线器 B 路由器 C 服务器 D 网关 43 是属
  • Modelling Context and Syntactical Features for Aspect-based Sentiment论文阅读笔记(ACL2020)

    目录 原文翻译 基于方面的情感分析的上下文和句法特征建模 摘要 1 介绍 2 相关工作 3 方法提出 3 1 方面提取 3 1 1 输入表示 3 1 2 词性嵌入 3 1 3 基于依赖关系的嵌入 3 1 4 微调过程 3 2 方面情感分类
  • 算法练习——力扣随笔【LeetCode】【C++】

    文章目录 LeetCode 练习随笔 力扣上的题目和 OJ题目相比不同之处 定义问题 排序问题 统计问题 注意事项 玄学 新 get 1 单调栈 2 滑动窗口 3 auto 应用 c 11 STL 4 sort 内嵌式规则 5 实现无删遍历
  • Python爬虫 如何利用浏览器获取JSON数据,如获取淘宝天猫的评论链接?

    浏览器 Chrome 工具 右键 检查 N 步骤 1 打开淘宝 天猫 2 右键 检查 3 随便点击一个商品进入购买界面 4 点击监控工具 Network Json 5 点击 商品评论 6 下拉到评论翻页处 7 点击 监控工具Clear功能
  • 微信小程序登录获取不到头像和昵称解决办法!

    微信小程序登录获取不到头像和昵称主要原因是 小程序wx getUserProfile接口被收回 大家可以按照文档操作 PS 针对小程序wx getUserProfile接口将被收回后做出的授权调整 小程序文档中提出的调整说明 对于此次变化