一 概述

  • 新建微信小程序自带用户登录简化
  • 小程序登录流程时序

二 新建微信小程序自带用户登录简化

新建的微信小程序默认有用户登录功能,将多余功能去除后,简化如下

2.1 index.wxml

<view class="container"><view class="userinfo"><open-data type="userAvatarUrl"  class="userinfo-avatar"></open-data><open-data type="userNickName"></open-data></view>
</view>

2.2 index.wxss

.userinfo {display: flex;flex-direction: column;align-items: center;color: #aaa;
}.userinfo-avatar {overflow: hidden;width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;
}

2.3 index.js

Page({})

2.4 效果图

三 小程序登录流程时序

3.1 登录流程时序

3.2 登录中的三个角色

  • 小程序:用户使用的客户端,由于小程序运行在微信之上,因此小程序可以通过API获取微信用户的身份信息
  • 开发者服务器:小程序的后端服务器,用于为小程序用户提供服务
  • 微信接口服务:微信为开发者服务器提供的接口

3.3 登录流程说明

3.3.1 小程序获取code

  • 在小程序中通过wx.login()获取登录凭证code
  • code由小程序内部自动生成,每次调用wx.login()获得的code都不同
  • code有效期为5分钟,且被微信接口服务验证一次后就会失效

3.3.2 小程序将code发送给开发者服务器

  • 在获取code后,使用wx.request()将code发给开发者服务器

3.3.3 开发者服务器通过微信接口服务校验登录凭证

  • 开发者服务器将AppId、AppSecret、code发给微信接口服务校验登录凭证
  • 如果校验成功,返回session_key和openid等

3.3.4 开发者服务器自定义登录态

  • 登录成功后,开发者服务器将openid和session_key保存,然后生词一个自定义登录态的token(令牌)形影给小程序
  • 通过token可以查询到openid和session_key
  • 小程序下次请求,只要携带token,就可以证明用户已登录

3.4 数据缓存

异步方式

方式 名称 说明
异步 wx.setStorage() 将数据存储到本地缓存中指定的key中
异步 wx.getStorage() 从本地缓存中获取指定key的内容
异步 wx.getStorageInfo() 异步获取当前storage的相关信息
异步 wx.removeStorage() 从本地缓存中移除指定key

同步方式

方式 名称 说明
同步 wx.setStorageSync() 将数据存储到本地缓存中指定的key中
同步 wx.getStorageSync() 从本地缓存中获取指定key的内容
同步 wx.getStorageInfoSync() 获取当前storage的相关信息
同步 wx.removeStorageSync() 从本地缓存中移除指定key

四 参考源码

  • 参考源码

微信小程序开发之——用户登录-登录流程(1)相关推荐

  1. 微信小程序开发----获取用户信息

    今天介绍两种微信小程序获取用户信息的方法 第一中直接授权获取(在同一页面之中): 首先在微信程序一个页面的WXML文件写入获取用户信息的按钮 <!-- bindTap用于绑定事件 --> ...

  2. 微信小程序开发之——用户登录-搭建开发者服务器(2)

    一 概述 用Node.js搭建开发者服务器 开发服务器作为登录中的三个角色(小程序/开发者服务器/微信接口)中的重要一环 开发者服务器接收code,保存openid和session_key,并返回to ...

  3. 微信小程序开发之——用户登录-开放数据校验与解密(6)

    一 概述 小程序端获取到的用户信息通过wx.request发送给开发者服务器 开发者服务器无法辨别数据的真伪(如发送虚假用户信息) 小程序提供了开发数据的校验和解密机制 二 获取用户信息 2.1 代码 ...

  4. 微信小程序开发之——用户登录-获取用户信息(5),意外收获字节跳动内部资料

    {{userInfo.nickName}} {{userInfo.city}} {{userInfo.gender0?"未知":userInfo.gender1?"男&q ...

  5. 微信小程序开发之——用户登录-检查用户是否已经登录(4)

    一 概述 小程序登录成功后,将服务器中返回的token保存在数据缓存中 下次启动小程序时,判断数据缓存中是否存在token 如果存在token,直接取出token即可,不在执行登录操作 token过期 ...

  6. 【微信小程序开发】用户头像昵称获取规则调整 2022

    之前通过wx.getUserInfo获取用户的头像.昵称等信息 2021年4月调整为通过wx.getUserProfile获取用户的头像.昵称等信息 详情请看:https://developers.w ...

  7. 微信小程序之获取用户信息(流程+2种方法)

    获取流程图 ui库Vant Weapp:Vant Weapp地址(点击跳转) 第一种方法 适用于直接点击登录获取 在界面添加登录按钮,用户点击按钮调用wx.getUserProfile()函数来提示用 ...

  8. 微信小程序开发之『侧边栏滑动』特效

    周末找事做做.看到微信里有个漂流瓶.试着敲了敲. 这里是用leancloud做后台.涉及到语音和文字的储存,查询.自己不会写后台代码,对于我算是个福利. 欢迎交流! 技术点: 1.微信小程序开发之录音 ...

  9. 微信小程token_微信小程序开发之登录换取token

    本文将带你了解微信小程序开发之登录换取token,希望本文对大家学微信有所帮助 前言:这次主要是介绍些业务逻辑,技术点倒是没有多少.不过在开发中,优秀的编程思路同样是非常值得学习的. 最近小程序可以说 ...

最新文章

  1. 国内自动驾驶战局如何?我对比了下华为大疆特斯拉百度等公司
  2. I/O流的概念和流类库的结构
  3. poj 3680 Intervals(离散化+费用流)
  4. Android 6.0 超级简单的权限申请2 (Permission)
  5. HDU6038 - Function
  6. 此时我的waga2012源码情绪也平静了许多
  7. redis专题:redis缓存穿透、缓存击穿、缓存雪崩等问题如何解决?
  8. [译]JavaScript中的属性:定义和赋值的区别
  9. 学习language C
  10. Python如何运行单个.py文件而不是unittest
  11. 异常和Log4j日志
  12. java 识别fn键_Fn快捷键全解
  13. 分享这位的WPF界面设计系列视频
  14. 2019最新《web前端课程+项目实践课程》高清无拼凑
  15. 计算机主机结构图手画,流程图怎么画简单又漂亮
  16. 00003__爬拉勾网
  17. 什么叫单模光纤_什么叫单模光纤_单模光纤的特点是什么 - 全文
  18. L328 What Is Millennial Burnout?
  19. XMind 8 Update 8 Pro 激活教程(亲测可用) 国外官网下载 破解教程(带离线安装包)
  20. SpringBoot中Mybatis-plus的通用接口BaseMapper方法演示(上)

热门文章

  1. 智能风控平台核心之风控决策引擎(一)
  2. 【C语言】打印出一箭穿心图案(简单版)----gotoxy函数
  3. 如何关闭电脑自动更新?
  4. 蒙牛和可口可乐合资成立“可牛了”,网友:加上雪碧,就是可牛逼了
  5. htonl,htons 和 ntohs相关问题
  6. 《沧浪之水》、《因为女人》作者阎真的最新作品《活着之上》的阅后笔记
  7. 解决因蓝牙驱动版本问题无法升win10问题 (附 WIN7升级WIN10超详细步骤 及 升级后个别问题软件处理方法)
  8. 计算机PPT中项目编号怎么弄,电脑技巧收藏家电脑基础设置幻灯片格式:项目符号和编号...
  9. 朴素贝叶斯法及python实现
  10. 使用全局阈值进行灰度图像二值化