2023最新使用微信小程序完成一键授权登录

简介: 2023最新使用微信小程序完成一键授权登录

前言:

使用开发工具:小程序。在我这一篇已经详细介绍了小程序的安装介绍http://t.csdnimg.cn/IEVc0今天我给大家带来的是微信的一键授权登录,保存用户信息,退出的功能!!!希望看完了这篇博客能够对你有帮助!!!

效果:

登录获取到用户信息:

思路:点击按钮获取到用户信息(调用方法wx.getUserProfile

遇到问题:头像,昵称显示是初始化的状态。

解决方法:将小程序的基础库版本调低。(版本问题)

//获取用户信息
  getUserProfile() {
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {//类似javafx的em表达式
        console.log("获取用户信息成功", res);
        let user = res.userInfo;
        wx.setStorageSync('user', user); //保存用户信息到本地缓存。相当于session
        this.setData({
          nickName: true,
          userInfo: user,
        })
      },
      fail: res => {
        console.log("获取用户信息失败", res)
      }
    })
  }

保存用户信息到缓存:

问题:如果我们每次进入页面都让用户点击授权,就有点太烦锁了,其实可以在第一次授权成功获取用户信息的时候把数据缓存在本地缓存的。

解决方法:将获取用户信息设置保存(调用方法wx.setUserProfile设置用户信息)

// 保存缓存
  onShow(options) {
    console.log("保存缓存");
    this.getUserProfile();
    var user = wx.getStorageSync('user'); //从本地缓存去用户信息
    if (user && user.nickName) { //如果本地缓存有信息就显示本地缓存
      this.setData({
        nickName: true,
        userInfo: user,
      })
    }
  }

退出登录:

思路:将获取的用户信息自己设置为空。

主要就是要调用方法(查看官方API文档)

wx.getUserProfile获取用户信息 wx.setUserProfile设置用户信息

wx.setStorageSync存数据到本地缓存 wx.getStorageSync取缓存数据

// 退出
  loginOut(options) {
    this.setData({
      nickName: "",
      user: "",
    })
    // 赋予用户信息为空
    wx.setStorageSync('user', null) //保存用户信息到本地缓存。相当于session
    console.log("调用退出");
  }

index.wxml代码:

<!-- html代码 -->
<!--用户授权了,就显示头像和昵称-->
<view class="header" wx:if="{{nickName}}" bindtap='change'>
  <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}"></image>
  <text class="userinfo-nickname">{{userInfo.nickName}}</text>
  <button type="default" bindtap="loginOut">退出登陆</button>
</view>
<!--如果用户没有授权,显示登陆按钮  -->
<view wx:if="{{!nickName}}" class="btn-login">
  <button type="primary" bindtap="getUserProfile">授权登陆</button>
</view>

index.wxss代码:

page {
  /* 整个背景 */
  background: gainsboro;
}
.header {
  width: 100%;
  padding-top: 25px;
  display: flex;
  flex-direction: column;
  padding-bottom: 15px;
  align-items: center;
  background: white;
}
.btn-login {
  padding: 8%;
  background: white;
}
.userinfo-avatar {
  border-radius: 128rpx;
  width: 128rpx;
  height: 128rpx;
  margin-block-start: 10px;
}
.userinfo-nickname {
  margin-top: 20rpx;
  font-size: 38rpx;
}
}
目录
相关文章
|
8月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
2550 12
|
11月前
|
小程序 前端开发 算法
|
12月前
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
272 0
|
1月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
2月前
|
小程序 JavaScript API
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
这篇文章介绍了使用uni-halo框架进行微信小程序开发的过程,包括选择该框架的原因、开发目标以及项目配置和部署的步骤。
114 0
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
|
8月前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
5月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1196 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
4月前
|
监控 数据可视化 数据处理
微信养号脚本,全自动插件,AUTOJS开发版
这是一套自动化微信养号工具,包含主脚本`wechat_auto.js`与配置文件`config.json`。主脚本实现自动浏览朋友圈、随机阅读订阅号文章及搜索指定公众号三大功能,支持自定义滚动次数、阅读时长等参数。代码通过随机化操作间隔模拟真实用户行为,具备完善的错误处理和日志记录功能。配套UI模块提供可视化操作界面,可实时监控任务状态与运行日志,便于调整参数设置。控制器部分扩展了批量数据处理能力,如学生信息的增删改查操作,适用于多场景应用。下载地址:https://www.pan38.com/share.php?code=n6cPZ 提取码:8888(仅供学习参考)。
|
12月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
2652 7

热门文章

最新文章