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
								});
							}
						}
					})
				}
 
			}
相关推荐
kyh10033811203 分钟前
答题流量主小程序源码+后台题库管理系统源码
微信·微信小游戏·微信刷题·刷题小程序·刷题程序源码
karshey10 分钟前
【前端】sort:js按照固定顺序排序
开发语言·前端·javascript
00后程序员张1 小时前
AppStoreInfo.plist 在苹果上架流程中的生成方式和作用
android·小程序·https·uni-app·iphone·webview
WebRuntime1 小时前
问世间,exe是何物?直教AI沉默、Web寡言(1)
javascript·c#·.net·web
一字白首1 小时前
Vue3 入门,从项目创建到组合式 API 全解析(含 provide/inject)
前端·javascript·vue.js
不会飞的鲨鱼1 小时前
抖音验证码滑动轨迹原理(续)
javascript·爬虫·python
Hilaku2 小时前
2025快手直播至暗时刻:当黑产自动化洪流击穿P0防线,我们前端能做什么?🤷‍♂️
前端·javascript·安全
San30.2 小时前
深度解析 React 组件化开发:从 Props 通信到样式管理的进阶指南
前端·javascript·react.js
千里马-horse2 小时前
AsyncContext
开发语言·前端·javascript·c++·napi·asynccontext