微信小程序云开发 授权手机号快捷登陆

news/2025/9/27 22:33:06/文章来源:https://www.cnblogs.com/pythonClub/p/19115822

微信小程序云开发-登录功能(微信授权登录)

 来自: 微信小程序云开发-登录功能(微信授权登录) - AnnLing - 博客园

一、创建页面load

创建页面load

 

、需求说明

登录之前,【我的】头像和文字显示为默认显示。微信授权登录成功之后,【我的】头像和文字分别获取微信头像和微信名字。

 

、代码实现(微信授权登录页面)

1、load.wxml

1 <view class="loadType">
2 <button type="primary" bindtap="loadByWechat">微信授权登录</button>
3 <button type="primary" plain="true" bindtap="loadByPhone">手机号码登录</button>
4 <button type="primary" plain="true" bindtap="loadByAccount">账号密码登录</button>
5 </view>

2、load.wxss

1 .loadType{
2   margin-top: 800rpx;
3 }
4 button{
5   margin-top: 20rpx;
6 }

3、load.js

  • 微信授权登录获取用户信息(wx.getUserProfile函数)
  • 携带用户登录头像和名字跳转到tab页面(wx.reLaunch函数)
  • 将获取的用户信息保存到缓存中(wx.setStorageSync函数)
复制代码
 1 Page({2 3   //微信授权登录4   loadByWechat(){5     wx.getUserProfile({6       desc: '用户完善会员资料',7     })8     .then(res=>{9     console.log("用户允许了微信授权登录",res.userInfo);
10     //注意:此时不能使用 wx.switchTab,不支持参数传递
11     wx.reLaunch({
12       //将微信头像和微信名称传递给【我的】页面
13       url: '/pages/me/me?nickName='+res.userInfo.nickName+'&avatarUrl='+res.userInfo.avatarUrl,
14     })
15     //保存用户登录信息到缓存
16     wx.setStorageSync('userInfo', res.userInfo)
17     })
18     .catch(err=>{
19       console.log("用户拒绝了微信授权登录",err);
20     })
21   },
22 
23   //跳转到手机号码登录页
24   loadByPhone(){
25     wx.navigateTo({
26       url: '/pages/loadByPhone/loadByPhone',
27     })
28   },
29 
30   //跳转到账号密码登录页
31   loadByAccount(){
32     wx.navigateTo({
33       url: '/pages/loadByAccount/loadByAccount',
34     }) 
35   },
36   
37 })
复制代码

 

、代码实现(我的页面)

1、me.wxml

复制代码
 1 <!--未登录-->2 <view class="load" wx:if="{{!loginOk}}">3 <image src="../../images/我的.png" bindtap="load"></image>4 <text class="clickload" bindtap="load">点击登录</text>5 </view>6 <!--已登录-->7 <view wx:else>8 <view class="load" >9 <image src="{{avatarUrl}}" ></image>
10 <text class="clickload" >{{nickName}}</text>
11 </view>
12 <button class="exit" bindtap="exit" type="primary">退出登录</button>
13 </view>
复制代码

2、me.wxss

复制代码
 1 .load{2   background-color:#04BE02;3   width: 100%;4   height: 400rpx;5   /*设置图片和文字垂直居中对齐*/6   display: flex;7   flex-direction: column;8   justify-content: center;9   align-items: center;
10 }
11 
12 .load image{
13   width: 200rpx;
14   height: 200rpx;
15   border-radius: 50%;
16 }
17 .load text{
18   color:white;
19 }
20 .exit{
21   width: 95%;
22   margin-top: 40rpx;
23 }
复制代码

3、me.js

  • onLoad:页面加载的时候,获取load页面传过来的微信头像和微信名字
  • onShow:根据缓存数据,来控制已登录/未登录的页面切换显示
  • 退出登录后,清空用户信息的缓存数据
复制代码
 1 Page({2 3   /**4    * 页面的初始数据5    */6   data: {7     loginOk:true,8     nickName:"",9     avatarUrl:"",
10   },
11 
12   //页面加载的时候,将load页面传过来的值获取过来
13   onLoad: function (options) {
14     console.log("这里的options",options);
15     this.setData({
16       nickName:options.nickName,
17       avatarUrl:options.avatarUrl
18     })
19   },
20 
21   //小程序声明周期的可见性函数里面来控制显示
22   onShow(){
23     let userInfo = wx.getStorageSync('userInfo')
24     console.log("我的缓存信息",userInfo);
25     if(userInfo){
26       this.setData({
27         loginOk:true,
28         nickName:userInfo.nickName,   //从缓存中拿数据
29         avatarUrl:userInfo.avatarUrl
30       })
31     }else{
32       this.setData({
33         loginOk:false
34       }) 
35     }
36   },
37 
38   //点击登录
39   load(){
40     wx.navigateTo({
41       url: '/pages/load/load',
42     })
43   },
44 
45   //退出登录
46   exit(){
47     wx.showModal({
48       content:"确定退出吗"
49     }).then(res=>{
50       if(res.confirm){
51       console.log("用户点击了确定");
52       this.setData({
53         loginOk:false
54       })
55       //清空登录的缓存
56       wx.setStorageSync('userInfo', null)
57       }else if(res.cancel){
58         console.log("用户点击了取消");
59       }
60     })
61   },
62  
63 })
复制代码

 

五、效果展示

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

newDay05

1.把离散,英语和java作业写了,复习算法与数据结构,背单词,没啥时间学Java了 2.代码大全那两本书到了,可以看看 3.学java的进度还是太慢了,好多题不会做

AtCoder Beginner Contest 425 ABCDEF 题目解析

A - Sigma Cubes 题意 给定一个正整数 \(N\),求出 \(\displaystyle \sum_{i=1}^N (-1)^i \times i^3\) 。 代码 void solve() {int n, sum = 0;cin >> n;for(int i = 1; i <= n; i++){if(i % 2 == 1)sum -= …

网页设计后怎么上传到网站曰本免费一级a做爰视频网站

文字描边想要在网页里实现文本描边效果&#xff0c;在以前只能使用Photoshop等来实现&#xff0c;但现在只需要一个text-stroke属性&#xff0c;即可轻松做到文本描边&#xff0c;渐变文本描边&#xff0c;甚至图片文本描边。01语法text-stroke: text-stroke是一个复合属性&…

p2p免费网站建设广告推广有哪些平台

pipeline自动化&#xff0c;提交代码后&#xff0c;就自动打包&#xff0c;打包成功后自动发布 第一步 pipeline提交代码后&#xff0c;自动打包。 1 在Repos,分支里选择要触发的分支&#xff0c;这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…

阿里云官网首页德阳seo网站建设

目录 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f;Redux 原理及工作流程 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f; Redux是一个用于管理数据状态和UI状态的JavaScript应用工具&#xff0c;主要解决了在复杂JavaScript单页应用&#xff08;SPA&a…

maven打包依赖

4.0.0 <groupId>com.zhihe</groupId> <artifactId>testPlC</artifactId> <version>1.0</version> <packaging>jar</packaging><name>testPlC</name> <…

sg.如何使用PySimpleGUI调试器窗口

PySimpleGUI调试器窗口是开发者在代码运行时实时监控变量、执行交互式命令的强大工具,其使用方法及核心功能如下: 一、核心使用步骤启用异步窗口模式 调试器依赖异步窗口(非阻塞读取)工作,需在read()方法中设置ti…

对话汇总:从东方哲学到可计算架构的演进

对话汇总:从东方哲学到可计算架构的演进 声明:Ai辅助创作/岐金兰,技术门外汉 一、 起源:对AI伦理困境的哲学批判与东方方案的提出 对话始于一份名为《空白金兰契:一种应对AI伦理价值困境的东方方案及其批判性审视…

遵义网站建设网帮你网站备案证书查询

转载公众号 | DataFunTalk 合作分享&#xff1a;Jesus Barrasa-Neo4j-欧洲区售前和技术总监合作分享&#xff1a;丁可-Neo4j-亚太区高级技术顾问编辑整理&#xff1a;吴祺尧-加州大学圣地亚哥分校出品平台&#xff1a;DataFunTalk导读&#xff1a;Neo4j近年来与众多公司合作&am…

25.9.27 继续MyBatis

逐渐入门第一个框架,学习应用层面的东西比之前纯理论的知识有趣不少,实际内容比想象中多,争取先吃透掌握熟练吧。

MoeCTF 2025 二进制漏洞审计:boomboom_revenge

前情提要 栈溢出漏洞,简单的校验逻辑,但很容易被唬住,需要一点耐心。 题目分析 你可以轻易爆破我们的系统,但是一个不可泄露的“canary”你又该如何应对? 你可能需要使用 Python ctypes 包来直接调用 C 库函数。 …

跟brocode用c语言做tictoktoe井字棋 - 指南

跟brocode用c语言做tictoktoe井字棋 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

集训总结(九)

9.24~9.26总结9.24 P11770 檐牙覆雪 暴力很好写,直接枚举即可。单次询问复杂度 \(O(nlogn)\)。打个表,发现每个地方的最大雪堆都是由它的最大质因子位置转移而来. 设 \(f_i\) 表示最后 \(i\) 处最大雪团体积,则有转…

Spring Cloud构建分布式微服务架构的完整指南 - 指南

Spring Cloud构建分布式微服务架构的完整指南 - 指南2025-09-27 22:21 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

.net网站开发全过程网站域名做301

目录 初始化列表 static成员 C11对于非静态成员变量初始化 友元 友元函数 友元类 总结 初始化列表 我们知道&#xff0c;在学习构造函数时&#xff0c;我们知道对象的成员变量的初始化我们是在构造函数函数体内进行初始化的&#xff0c;还有没有其它初始化成员变量的方…

完整教程:操作系统之初识Linux

完整教程:操作系统之初识Linuxpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

XJSOJ优化(Stylus脚本)

/* XJSOJ Ultimate Smart Theme - 全面优化与重构 / / 版本: 3.0 - 完整结合版 / / 功能:包含基础圆润优化 + Smart Luogu式深度重构 */ /* === 基础重置与全局样式 === */{ border-radius: 8px !important; transiti…

使用mpm-itk让Apache以不同用户身份运行的完整指南

本文详细介绍了如何使用Apache的mpm-itk模块实现每个虚拟主机以不同用户身份运行,解决WordPress开发和生产环境中的文件权限问题,包含Docker容器配置和PHP邮件功能故障排除方案。使用mpm-itk让Apache以不同用户身份运…

sg.如何打开PySimpleGUI调试器窗口?

在PySimpleGUI中,调试器窗口的打开方式主要有以下三种,每种方式均适用于不同调试场景,且均通过内置调试器实现: 方法一:使用show_debugger_window()函数适用场景:需要快速查看变量值或交互式执行代码时。 操作步…

第6篇、Flask 表单处理与用户认证完全指南:从零到实战

标签:Python Flask Web开发 表单验证 Session Cookie 用户认证 安全编程🎯 为什么选择这篇文章? 在Web开发的世界里,表单处理和用户认证是每个开发者必须掌握的核心技能。无论是构建电商网站、社交平台还是企业管…