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
								});
							}
						}
					})
				}
 
			}
相关推荐
文阿花16 分钟前
Echarts实现自定旋转3D饼状图
javascript·3d·echarts·饼状图
meilindehuzi_a1 小时前
深入理解 JavaScript 的同步与异步机制:从单线程设计到 Promise 核心应用
开发语言·javascript·ecmascript
如烟花的信页1 小时前
加速乐cookie逆向分析
javascript·爬虫·python·js逆向
永远的WEB小白1 小时前
css改变svg图标的颜色
前端·javascript·css
ikoala1 小时前
Codex 不得不装的 12 个插件,都在这了
前端·javascript·后端
qq_229933132 小时前
uniapp踩坑-组件嵌套子组件不触发onReachBottom事件
uni-app
赵庆明老师2 小时前
JS检查提交的文件是否合规
开发语言·前端·javascript
颂love2 小时前
Vue的两大生态以及组件通信
前端·javascript·vue.js·typescript
00后程序员张2 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
光影少年2 小时前
js单线程,为什在node环境下的js可以处理高并发请求?
前端·javascript·掘金·金石计划