您当前的位置: 首页 >  学无止境 >  文章详情

小程序引导用户点击登录授权弹出层,以组件的形式调用

时间: 2020-09-30 【学无止境】 阅读量:共888人围观

简介 小程序用户登录,功能页的使用,是需要用户授权登录,但是登陆的代码不可能每个页面都写一次,解决的办法有很多种,下面介绍一种方式,以组件调用的方式简单实现用户授权登录

效果图

微信图片_2020093011473ss9.jpg

组件代码

<template> <view class="content"> <view class="btn-box"> <view class="font-text">欢迎浏览碧羽墨轩</view> <view class="font-text">请完成微信登录以继续使用</view> <button class="follow" open-type="getUserInfo" @getuserinfo="onGetUserInfo" withCredentials="true"> <view class="_uploads/photos-icon-weixin"> <_uploads/photos src="/static/weixin.png" class="icon-_uploads/photos"></_uploads/photos> </view> <view class="login-btn"> 立即登录 </view> </button> <view class="font-cencl" @tap="close">取消</view> </view> </view> </template> <script> export default { data() { return { } }, methods: { close () { this.$emit('getdata',0) }, onGetUserInfo(event) { const userInfo = event.detail.userInfo if (userInfo) { this.init() } }, init(){ const that = this; wx.login({ success (val) { wx.getSetting({ success (res1){ wx.getUserInfo({ success: function (res){ uni.showLoading({ title: '登录中!' }); wx.request({ url: "后台处理登录的接口", data: { code:val.code, encryptedData:res.encryptedData, iv:res.iv }, method: 'POST', success: function (data) { uni.hideLoading(); uni.setStorage({ key:"存储登录信息的key", data:"后台返回的登陆信息" }) that.$emit('getdata',1) }, fail: function () { }, complete: function (){ } }) } }) } }) } }) } } } </script> <style> ._uploads/photos-icon-weixin{ width:25px; float:left; margin-left:25px; } .login-btn { width:80px; float:left; line-height: 22px; text-align: left; } .icon-_uploads/photos { width: 25px; height: 25px; } .font-cencl { height: 30px; line-height: 30px; font-size: 28rpx; color: #999; text-align: center; } .font-text { height: 32px; line-height: 32px; font-size: 30rpx; color: #222; text-align: center; } .follow { padding: 10px 10px 0 10px; color: white; background: #009ad6; border-radius: 25px; font-size: 25rpx; line-height: 20px; width: 150px; margin-top: 10px; margin-bottom: 10px; } .content { width: 100vw; height: 100%; overflow: hidden; background: rgba(0, 0, 0, 0.6); position: fixed; top: 0; left: 0; z-index: 9999; } .btn-box{ width: 70%; height: 180px; margin: 0 auto; background: white; position:absolute; top: 50%; left: 50%; margin-left: -37%; margin-top: -90px; border-radius: 10px; padding-top: 30px; } </style>

调用组件

<login v-if="loginShow" @getdata="getdata"></login> 注意:loginShow声明在data中,判断时候弹出 // 引入文件 import login from '../../components/login.vue' // 声明使用 export default { components: { login }, // getdata方法 getdata (e) { this.loginShow = false var that = this; if (e === 1) { uni.getStorage({ key:"存储登录信息的key", success(e){ that.loginUser = e.data } }) } }

页面登陆后返回到上一页,更新登录信息

// 点击返回的页面 navigatorBack () { let pages = getCurrentPages(); // 当前页面 let beforePage = pages[pages.length - 2]; // 前一个页面 uni.navigateBack({ delta: 1, success: function() { beforePage.$vm.refreshRequest(); // 执行前一个页面的刷新 } }); } // 到达返回的页面 refreshRequest () { var that = this uni.getStorage({ key:"存储登录信息的key", success(e){ that.loginUser = e.data } }) }
文章评论
总共 0 条评论
这篇文章还没有收到评论,赶紧来抢沙发吧~
Copyright (C) 2023- 小祥驿站 保留所有权利 蜀ICP备 17034318号-2  公安备案号 50010302004554