uniapp获取微信用户信息登录

想要获取用户信息需要先使用wx.login功能

javascript 复制代码
	wx.login({
					success: res => {
						if (res.code) {
							// 获取 code 成功后,通过微信开放接口获取用户 openid
							wx.request({
								url: '后台接口',
								data: {
									code: res.code,
								},
								success: res => {
									console.log(res.data.openid);
									this.openid = res.data.openid
									uni.setStorageSync('openid', res.data.openid)
								}
							});
						}
					},
					fail: err => {
						console.log(err);
					}
				});

然后使用按钮的open-type获取用户的头像,想要获取完整用户信息可以使用getUserInfo

javascript 复制代码
	<view class="">
               // 调用微信开放能力
			<button open-type="chooseAvatar" @chooseavatar="chooseAvatar"
				style="width:190rpx;height: 190rpx;border-radius: 50%;padding: 0;margin-top: 20px;">
				<image :src="image" class="imageAsdf" style="width: 200rpx;height: 200rpx;border-radius: 100%;" />
			</button>
		</view>

获取用户昵称

html 复制代码
<view style="width: 60%;margin: auto;margin-top: 10px;">
			<input id="nickname-input" v-model="nickname" class="authorization white" type="nickname"
				placeholder="请输入用户昵称" style="width: 100%;text-align: center;" @change="change">
		</view>

保存头像和昵称

javascript 复制代码
            change(e) {
				this.nickname = e.detail.value
			},
			chooseAvatar(e) {
				console.log(e);
				this.image = e.detail.avatarUrl
			},

登录判断:

javascript 复制代码
// 登录
			logins() {
				let that = this;
				if (that.nickname == '') {
					uni.showToast({
						icon: 'none',
						title: '请输入用户昵称',
						// duration: 2000
					});
				} else if (that.image == '') {
					uni.showToast({
						icon: 'none',
						title: '请上传用户头像',
						// duration: 2000
					});
				}
				if (that.nickname != '' && that.image != '') {
					uni.request({
						url: '登录接口',
                        //参数
						data: {
							openid: that.openid,
					        value:value
						},
						dataType: 'json',
						method: "POST",
						success(res) {
							console.log(res);
							if (res.data.err == '请求成功') {
								console.log(res.data.userid);
								uni.setStorageSync('userid', res.data.userid);
								
								uni.showToast({
									title: '登录成功',
									duration: 2000
								});
                                // 跳转路径
								let path = uni.getStorageSync('paths');
								setTimeout(() => {
									uni.reLaunch({
										url:`/pages/${path}/${path}`
									})
								}, 2000)
							} else {
								uni.showToast({
									title: '登录失败',
									icon:'none',
									duration: 2000
								});
							}
						}
					})
				}
 
			}
相关推荐
鹏多多2 小时前
PC 网站接入微信登录,这 10 个坑我替你踩完了!
前端·javascript·vue.js
用户298698530143 小时前
React 中 HTML 内容转 Word 文档的实现方案
javascript·react.js·html
mONESY3 小时前
我用 Next.js 16 + Supabase 从零做了个「背单词」H5 应用
javascript
boooooooom3 小时前
手把手做一个图 RAG 烹饪问答系统:Neo4j + Milvus + LLM 的工程实践
前端·javascript·后端
PedroQue993 小时前
v2.7.1:修复 H5 端返回死循环闪烁问题
前端·uni-app
lhldsg5 小时前
AI零售系统实战指南:从架构设计到落地部署全解析
java·人工智能·小程序·uni-app·零售
染指11106 小时前
103.RAG-LLamaIndex后端rag问答-聊天接口
前端·javascript·vue.js·人工智能
单线程_0114 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
小磊哥er16 小时前
深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算
javascript·ai编程
kyriewen17 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程