编程崽

登录

一叶在编程苦海沉沦的扁舟之上,我是那只激情自射的崽

微信服务号登录+推送服务提醒

微信服务号登录+推送服务提醒

这个功能的表现:

  • 用户在某网站点击「微信登录」
  • 页面展示一个二维码
  • 用户手机微信扫描,实际会跳到某公众号:
    1. 还没有关注这个公众号,点击关注
    2. 已经关注这个公众号,什么也不会问,只会自动打开这个公众号
  • 网站的二维码自动消失,登录成功

本质是:

  • 网站背后的企业,先在微信公众平台注册服务号,并进行相关配置,主要是服务器接口地址
  • 用户点击网站上的使用微信登录按钮
  • 页面js请求后台接口,后台调用微信接口,生成带参数的二维码,得到一个临时(常用)或永久的二维码地址,获取时,会传一些数据给微信,比如业务数据、这个二维码的唯一id,最后把二维码地址和唯一id返回给前端。
  • 前端把二维码地址转成二维码展示给用户,同时开始轮询调用接口,参数主要是唯一id,目的就是不停地问后台:用户扫码了没有?用户关注了公众号了没有?授权登录成功了没有?
  • 用户微信手机扫二维码,跳转到公众号,关注公众号来授权登录,如果已关注,自动认为授权。
  • 用户授权后,微信调用服务器接口地址,这一步称为进行了事件推送,后台就能拿到用户openId、那些数据,比如业务数据、这个二维码的唯一id等等,后台对这些数据临时存库。
  • 同时,前端页面在不停地轮询调用接口,后台存库后,再接到前端的请求,根据唯一id对比,能得知用户已经授权登录,可以进行业务处理,比如生成用户token和用户信息,返回给前端。
  • 前端轮询中,收到用户登录成功的信号,登录成功。

之后,服务器可以根据业务,给用户推送服务通知:模板消息接口

更新时间:2023/12/21 18:07:06