微信小程序登录界面的实现

article/2025/10/8 10:50:43

首先是未登录时的界面,提示用户登录之后使用全部的功能。

用户点击登录,调用API拿到用户的信息并在页面中显示出来,同时将用户的信息保存在本地。向后端发送POST请求,拿到code,拿到token,并保存在本地,登录之后隐藏未登录的界面,显示登录后的界面。

点击退出登录之后,重置一些数据,隐藏登陆后的界面,显示未登录时的界面

WXML

<view class="backGround"></view>
<!-- 未登录时的页面 -->
<block wx:if="{{hiddenBlean1}}"><view class="container-out"><view class="faceOut"></view><view class="textout"><view class="word1"><text>未登录</text></view><view class="word2"><text>请点击登陆后使用全部功能</text></view></view></view><button bindtap="getUersProfile" class="btn">登录</button>
</block>
<!-- 登陆后的页面 -->
<block wx:if="{{hiddenBlean2}}">
<!-- 头像,用户名,招呼 --><view class="container-in"><image src="{{avatarUrl}}" class="touxiang"></image><view class="wenZi"><view class="word3">{{nickName}}</view><view class="word4">Hi</view></view></view><view class="loginOut" bindtap="loginOut"><button>退出登录</button></view>
</block>

WXSS 

page {background-color: #ededed;
}.backGround {width: 100%;height: 490rpx;background-color: #2b4b6b;border-radius: 0 0 25rpx 25rpx;overflow: hidden;
}.btn {width: 400rpx;height: 100rpx;margin-top: 200rpx;border-radius: 20rpx;box-shadow: 1rpx 0rpx 10rpx 1rpx rgba(0, 0, 0, .2);background-color: #05c160;color: white;font-size: large;
}.btn:active {background-color: teal;
}.container-out {display: flex;align-items: center;margin:-100rpx auto;width: 650rpx;height: 250rpx;box-shadow: 1rpx 1rpx 19rpx 1rpx rgba(0, 0, 0, .03);border-radius: 20rpx;background-color: rgb(255, 255, 255);
}.faceOut {display: inline-block;width: 210rpx;height: 210rpx;margin-left: 20rpx;border-radius: 20rpx;background-color: rgb(235, 230, 230);
}.textout {display: inline-block;margin-left: 20rpx;width: 360rpx;height: 210rpx;/* background-color: salmon; */
}.word1 {margin-left: 20rpx;font-size: 50rpx;
}.word2 {margin-top: 20rpx;margin-left: 20rpx;font-size: 25rpx;
}.container-in {display: flex;margin:-100rpx auto;margin-bottom: 0;width: 650rpx;height: 250rpx;box-shadow: 1rpx 0rpx 10rpx 1rpx rgba(0, 0, 0, .02); border-radius: 20rpx;background-color: rgb(255, 255, 255);
}.touxiang {display: inline-block;width: 210rpx;height: 210rpx;margin-top: 20rpx;margin-left: 20rpx;border-radius: 100rpx;border: 1rpx solidrgb(124, 121, 121)k;
}.wenZi {display: inline-block;width: 300rpx;height: 210rpx;margin-top: 20rpx;/* background-color: aqua; */margin-left: 20rpx;
}.word3 {font-size: 40rpx;margin-left: 20rpx;margin-top: 50rpx;
}.word4 {font-size: 25rpx;color: gray;line-height: 35rpx;margin-left: 20rpx;margin-top: 10rpx;
}.loginOut {margin-top: 100rpx;
}

JSON

{"usingComponents": {},"navigationStyle":"custom","navigationBarTextStyle":"black","backgroundColor": "#000000"
}

 JS


Page({data: {hiddenBlean1:true,hiddenBlean2:false,userInfo:'',//用户信息nickName:'',//用户姓名avatarUrl:'',//用户头像地址m:0,//用户的登录状态}, 
//退出登录loginOut() {this.setData({userInfo:'',hiddenBlean1:true,hiddenBlean2:false,m:0})wx.request({url: '',method:'POST',header: {'Content-Type':'application/json'},success:res=> {console.log(res)}})wx.setStorageSync('user', null),wx.showToast({title: '已退出登录',})},//获取用户信息getUersProfile:function() {if(this.data.m==0) {wx.getUserProfile({desc: '登陆后使用全部功能',success:(res)=> {let user = res.userInfoconsole.log('获取成功',res)wx.setStorage({data: res.userInfo,key:'userInfo',          });wx.login({//获取code向后端发送并请求tokensuccess(res) {console.log(res.code)let code = res.code            wx.request({url: '' + res.code,method:'POST',header: {'Content-Type':'application/json'},             success:res=>{console.log(res)console.log(res.data.data.token)wx.setStorageSync('token', res.data.data.token)}})}});         console.log('用户信息',res.userInfo),console.log(res.userInfo.nickName),this.setData({m:1,nickName : res.userInfo.nickName,avatarUrl: res.userInfo.avatarUrl,hiddenBlean2:true,hiddenBlean1:false})wx.showToast({title: '登陆成功',})wx.hideToast()this.onShow();},fail:(res)=> {console.log('授权失败',res)}})}else {wx.showToast({title: '您已经登录了',})}
}
})

效果 

 


http://chatgpt.dhexx.cn/article/YaMcH53E.shtml

相关文章

(一)微信小程序云开发之登录界面设计

最近在开发微信小程序&#xff0c;现阶段采用的云开发的方式。云开发与使用本地服务器开发还存在着一定的差异。本地服务器的开发后续记录。这里并没有记录微信小程序的云开发项目的创建方式。 先对微信小程序简单的登录界面做出实例。 1、登录界面UI 2、代码 2.1wxml login…

微信小程序开发(2)—— 简单的页面登陆实现

微信小程序开发&#xff08;2&#xff09; 二、简单的登陆实现&#xff08;非授权登录&#xff09;新建文件夹进入login.wxml界面进入login.wxss进入login.js进入json进入app.json效果图 二、简单的登陆实现&#xff08;非授权登录&#xff09; 新建文件夹 文件夹内新建js、wx…

微信小程序简洁登录页面(附源码)

文章目录 1.登录页面2.用户不存在3.代码3.1 login.wxml3.2 login.css3.3 login.js 4*斜体样式*.总结 1.登录页面 登录的具体流程 1.当用户输入密码和账号后首先检验账号和密码是否为空 2.若不为空&#xff0c;则将输入的账号发送到后端&#xff0c;首先判断账号是否存在 3.若账…

接口压力测试脚本

performance.py #构造性能测试基类 import re import time import requests import threading #初始化url、method&#xff08;默认get&#xff09;、header&#xff08;默认为空字典&#xff09;等参数, #这里Performance类重写父类threading.Thread的__init__方法,会覆盖父类…

超实用压力测试工具-ab工具

写在前面 在学习ab工具之前&#xff0c;我们需了解几个关于压力测试的概念 吞吐率&#xff08;Requests per second&#xff09; 概念&#xff1a;服务器并发处理能力的量化描述&#xff0c;单位是reqs/s&#xff0c;指的是某个并发用户数下单位时间内处理的请求数。某个并发用…

接口压测测试

Jmeter测试接口&#xff08;包括登陆操作&#xff09; 创建HTTP Request先登录参考&#xff1a; http://blog.csdn.net/ab_2016/article/details/78249686 注意&#xff1a;勾选FollowRedirects 自动重定向Redirect Automatically&#xff1a;HttpClient接收到请求后&#x…

接口测试及常用接口测试工具

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给你…

【接口压测】

感悟 最近在做的项目中,需要去做核心接口的压测工作,初次在实际项目中进行接口压测,本人属实有点慌张. 在经历了几周的时间,自己的压测脚本,从最初的单线程,变成多线程,最后又通过协程的方式去实现. 接口压测,首先需要去选择一款适合自己的压测工具,jmeter,loadrunner,locust等…

Postman 接口压力测试

第一步&#xff1a;点击Collections中的 按钮新增一个Collection 第二步&#xff1a;新增一个 request 第三步&#xff08;可选&#xff09;&#xff1a;可以分别对 collection 和 request 进行重命名 第四步&#xff1a;修改 request 中的 RequestBody 以及 URL&#xff0c;…

常用的接口测试工具有哪些?

点击上方“朱小厮的博客”&#xff0c;选择“设为星标” 后台回复"加群"&#xff0c;加入新技术群 来源&#xff1a;8rr.co/nxMW Poster 这是火狐浏览器的一个插件&#xff0c;如果你想调试服务器&#xff0c;发出HTTP请求&#xff0c;Poster操作简单&#xff0c;你先…

接口测试工具

一、Apifox和Postman各自的定义 1、Postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易用性好 。无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;postman都是我们的首选工具之一 。 2、A…

api接口压力测试

可借助Apache组件进行压力测试 E:\phpStudy\Apache\bin\ab.exe 使用于http请求 E:\phpStudy\Apache\bin\abs.exe 使用于https请求 出现如下图就是请求成功的&#xff0c;执行命令 abs.exe -c 60 -n 1000 https://test.shop.cn/user/login 用于GET请求&#xff0c;并发60&…

一个简单的接口压力测试

最近接到一个需求&#xff0c;对一个微信公众号上的一个登录进行压力测试&#xff0c;看是否存在压力问题。 刚拿到需求有点瞢&#xff0c;1.这个程序不是公司的开发做的&#xff0c;是第三方做的2.没有问题说明&#xff0c;只能自己想把法。 好吧&#xff0c;领导要求完成任务…

API 接口压力测试

1、下载siege的安装包&#xff0c;我用的是siege-4.0.4.tar.gz 版本的。 下载地址&#xff1a;http://download.joedog.org/siege/ cd siege-4.0.4 ./configure make sudo make install 2、测试 post接口 siege -c 100 -t 10s -b http://192.168.***.***:7027/predict P…

ab一款好用的压力测试工具

一、介绍 ab 命令会创建很多的并发访问线程&#xff0c;模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的&#xff0c;因此&#xff0c;既可以用来测试 Apache 的负载压力&#xff0c;也可以测试 nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力…

强大的接口测试与压力测试工具——postmanjmeter

对于系分的项目&#xff0c;我使用了postman做接口测试&#xff0c;用jmeter做压力测试。下面来谈谈这两个工具的使用方法。 Postman postman是一款很方便的接口测试工具&#xff0c;有app也有chrome插件&#xff0c;它可以模拟用户发起的各类HTTP请求&#xff0c;然后获得相应…

压力测试工具----JMeter

一、压力测试介绍及性能指标 1.压力测试介绍 压力测试考察当前软硬件环境下系统能承受的最大负荷并帮助找出系统的瓶颈所在&#xff0c;压测都是为了系统在线上的处理能力和稳定性维持在一个标准的范围内&#xff0c;做到心中有数.   使用压力测试&#xff0c;我们有希望找到…

接口压力测试:Jmeter【专门做接口压力测试】

QPS/Throughput极限测试&#xff1a; 一压力测试课程介绍 1、2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介&#xff1a;讲解课程安排&#xff0c;使用的Jmeter版本讲课风格&#xff1a;涉及的组件&#xff0c;操作配置多&#xff0c;不会一次性讲解&#xff…

接口压力测试工具JMeter

工欲善其事必先利其器 1&#xff0c;JMeter JMeter是Apache用的Java语言编写的压力测试工具可以做一下类型的测试 接口测试&#xff1a;对外部系统接口和本系统之间的接口这两个接口之间的测试&#xff0c;本系统之间各个内部系统接口之间的测试&#xff0c;没有界面支撑性能…