说说微信小程序的登录流程?

这篇具有很好参考价值的文章主要介绍了说说微信小程序的登录流程?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面试官:说说微信小程序的登录流程?

说说微信小程序的登录流程?,面试系列,wx小程序,微信小程序,小程序

一、背景

传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录

服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当token过期,用户都需要重新登录

而在微信小程序中,可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系,从而实现登陆功能

实现小程序用户体系主要涉及到openidcode的概念:

  • 调用wx.login()方法会生成code,将code作为参数传递给微信服务器指定接口,就可以获取用户的openid

对于每个小程序,微信都会将用户的微信ID映射出一个小程序 openid,作为这个用户在这个小程序的唯一标识

二、流程

微信小程序登陆具体实现的逻辑如下图所示:

说说微信小程序的登录流程?,面试系列,wx小程序,微信小程序,小程序

  • 通过 wx.login() 获取到用户的code判断用户是否授权读取用户信息,调用wx.getUserInfo 读取用户数据
  • 由于小程序后台授权域名无法授权微信的域名,所以需要自身后端调用微信服务器获取用户信息
  • 通过 wx.request() 方法请求业务方服务器,后端把 appid , appsecret 和 code 一起发送到微信服务器。 appid 和 appsecret 都是微信提供的,可以在管理员后台找到
  • 微信服务器返回了 openid 及本次登录的会话密钥 session_key
  • 后端从数据库中查找 openid ,如果没有查到记录,说明该用户没有注册,如果有记录,则继续往下走
  • session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输
  • 然后生成 session并返回给小程序
  • 小程序把 session 存到 storage 里面
  • 下次请求时,先从 storage 里面读取,然后带给服务端
  • 服务端对比 session 对应的记录,然后校验有效期

更加详细的功能图如下所示:

说说微信小程序的登录流程?,面试系列,wx小程序,微信小程序,小程序

三、扩展

实际业务中,我们还需要登录态是否过期,通常的做法是在登录态(临时令牌)中保存有效期数据,该有效期数据应该在服务端校验登录态时和约定的时间(如服务端本地的系统时间或时间服务器上的标准时间)做对比

这种方法需要将本地存储的登录态发送到小程序的服务端,服务端判断为无效登录态时再返回需重新执行登录过程的消息给小程

另一种方式可以通过调用wx.checkSession检查微信登陆态是否过期:

  • 如果过期,则发起完整的登录流程
  • 如果不过期,则继续使用本地保存的自定义登录态

这种方式的好处是不需要小程序服务端来参与校验,而是在小程序端调用AP,流程如下所示:

说说微信小程序的登录流程?,面试系列,wx小程序,微信小程序,小程序
更多前端资源==> GitHub文章来源地址https://www.toymoban.com/news/detail-828687.html

参考文献

  • https://segmentfault.com/a/1190000016750340
  • https://juejin.cn/post/6955754095860776973
  • https://www.cnblogs.com/zwh0910/p/13977278.html

到了这里,关于说说微信小程序的登录流程?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【面试合集】说说微信小程序中路由跳转的方式有哪些?区别?

    微信小程序拥有 web 网页和 Application 共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能 在微信小程序中,每个页面可以看成是一个 pageModel , pageModel 全部以栈的形式进行管理 常见的微信小程序页面跳转方式有如下: wx.navig

    2024年01月19日
    浏览(41)
  • 微信小程序授权登录wx.getUserProfile获取不到昵称及头像解决方案

    半年前做的个小程序,更新了二个文字,重新上传审核通过,悲剧了,新用户的昵称全部变为微信用户,头像全部变为默认头像,查了半天代码没找到原因,相当头大,搜了一下文档,尴尬了,11月9号新更新的规则,不再返回昵称和头像值....需要用头像昵称获取能力去触发获

    2024年02月11日
    浏览(31)
  • 微信小程序-微信小程序登录流程(一)

    微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用 冷启动: 小程序首次打开或销毁后再次被打开,此时小程序需要重新加载启动,即冷启动。会检查小程序是否

    2024年02月11日
    浏览(30)
  • 微信小程序授权登录流程

    我是IT果果日记,微信公众号请搜索 IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 首先, 我们要了解什么是微信小程序登录?它的作用是什么? 微信小程序登录是为了让开发者的服务器获取用户的openId以及session_key的令牌。 请不要

    2024年02月14日
    浏览(40)
  • 微信小程序的登录流程

    1.使用完整服务也就是用户登录并且允许获取头像和昵称的时候,微信小程序通过方法wx.login获取到code(5 分钟内有效),携带code、appid和appSecret发送请求到服务器端; 2.服务器端利用appId、appSecret 和code调用相对应的接口(auth.code2Session)发送请求到微信官方服务器进行校验,

    2024年02月09日
    浏览(35)
  • 微信小程序登录流程理解

    小程序官网里面会提到一个小程序的登录逻辑,下面是微信登录的整个过程,官方提供的图片。    官方流程的个人理解: 1.小程序启动 。 2.小程序通过 wx.login 获取微信的 code,然后将这个 code 发送给开发者服务器(我们自己的开发服务器) 3.开发者服务器接收到code 之后,

    2024年02月09日
    浏览(66)
  • 微信小程序的微信登录流程

    目录 1、登录流程 2、wx.login 3、auth.code2Session 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。 🦅主页:@逐梦苍穹 🍔所属专栏:前端 📕您的一键三连,是我

    2024年02月22日
    浏览(41)
  • 【微信小程序】授权登录流程解析

      目录 微信授权登录流程 1. 官方图示流程详解 2. 代码登录流程拆解 2.1 前端代码示例讲解 2.2 后端代码示例讲解 2.3 代码登录流程拆解 🌟 3. 表情包存储展示(扩展) 附议  ① 微信服务器验证: 当用户打开小程序时,小程序会向用户展示登录按钮,用户点击登录按钮后,小

    2024年02月08日
    浏览(32)
  • 微信小程序登录流程与实现

    在了解小程序登录之前,请大家先了解小程序的全局实例和全局组件,以方便理解本文的后续内容,已经了解的可以直接开始。 全局实例和全局组件( 👈 点击直达) 微信小程序的登录流程 微信小程序的登录 首先需要写一个微信小程序的登录弹窗,登录弹窗的作用就是发起

    2024年02月16日
    浏览(31)
  • 微信小程序的登录流程——代码详解

    小程序登录流程图(具体详情可看官网链接): https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 前端开发者需要做的任务是从小程序到开发者服务器

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包