【uniapp】小程序简单的登录授权了解v-if与v-else使用

举例:调用一下

uni.getUserProfile(OBJECT)

获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo。

uni.getUserProfile({
						desc: "获取你的昵称、头像、地区及性别",
						success: resa => {
							console.log('ress',resa)
							setStorage('userinfo',resa.userInfo)
							uni.navigateBack({
							delta: 1 //返回上一页
							})
						},

跳回个人中心,onshow时拿到放在缓存中的userInfo信息

data(){
			return{
				//拿到用户信息
				userinfo: '',
			}
		},
	
onShow() {
			let userinfo = getStorage("userinfo")
			if(userinfo == ''){
				console.log("为空时传空图标");
			}else{
				console.log("正常时显示头像");
				this.userinfo = userinfo
			}
			console.log("----------拿到session中的信息");
			console.log(userinfo);
			this.userinfo = userinfo
		},

原来没有登录时肯定要用空头像占位,用户名位置用【点击登录】等字符作为提醒。

可以在data中存两个变量img与nickname当读到缓存中的userInfo为空时就把图片未登录空头像图片传过去,有东西时正常传接收到的。这里使用v-if与v-else来处理:

<template>  
  <!-- userinfo为空时展示未登录 -->
			<view v-if="!userinfo">
                //空头像图片
				<view class="my_head_picture">
				<image src="../../static/image/user_image.png" mode="aspectFit"
                 @click="jumpPage('login')"></image>
				</view>

				<view class="my_name">
					<text>点击登录</text>
				</view>

			</view>

            //不为空时走这个分支
			<view v-else>
                    //展示传过来的头像  注意这里的src写法 使用v-bind绑定src
				<view class="my_head_picture">
					<image :src="userinfo.avatarUrl" mode="aspectFit"></image>
				</view>
                    //直接展示传过来的用户名
				<view class="my_name">
					{{userinfo.nickName}}
				</view>

			</view>

</template>

export default {
		data() {
			return {
				//拿到用户信息
				userinfo: '',
			}
		},
        onShow() {
			let userinfo = getStorage("userinfo")
			this.userinfo = userinfo
		},
		methods: {
        jumpPage(path) {
				console.log(path)
				uni.navigateTo({
					url: '../' + path + '/' + path
				})
			},

        }

UniApp 是一个基于 Vue.js 的跨平台框架,可以同时构建 Web、H5、小程序等应用。在 UniApp 中实现微信小程序授权登录,你需要遵循以下步骤: 1. **引入依赖**: 首先,在项目中安装微信小程序的 SDK: ```bash npm install uni-app-plus wx-login ``` 2. **配置权限管理**: 在 `uni.json` 文件中添加微信小程序的相关配置: ```json "framework": { "plus": { "login": { "enable": true, "scope": ["snsapi_userinfo"] } } } ``` 这里 `"scope"` 属性指定了需要获取用户信息的权限级别。 3. **注册登录按钮并处理逻辑**: 在页面模板中,添加微信登录的按钮,绑定到登录事件处理器: ```html <button bindtap="handleWechatLogin">微信登录</button> ``` 然后在对应的 JavaScript 中编写登录逻辑: ```javascript async handleWechatLogin() { try { const loginRes = await plus.login(); if (loginRes.code) { // 调用微信接口换取用户信息 const userInfo = await plus.oauth2.getUserInfo(loginRes.code); console.log('用户信息:', userInfo); // 存储或验证用户身份 } else { console.error('登录失败', loginRes); } } catch (error) { console.error('登录错误', error); } } ``` 4. **处理授权回调**: 微信服务器会将授权结果发送到你配置的回调地址,记得在后端设置相应的接收和处理逻辑。 注意,微信官方的登录流程是异步的,所以在处理登录请求时需要等待回调。此外,还要确保遵循微信小程序的隐私政策和用户协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值