微信服务号登录+推送服务提醒
title: 微信服务号登录+推送服务提醒 id: a00d48c13d8636e899146b6ced6574c2 tags: [] date: 2023/12/21 18:07:06 updated: 2023/12/21 18:07:06 isPublic: true --#|[分隔]|#--
微信服务号登录+推送服务提醒
这个功能的表现:
用户在某网站点击「微信登录」
页面展示一个二维码
用户手机微信扫描,实际会跳到某公众号:
还没有关注这个公众号,点击关注
已经关注这个公众号,什么也不会问,只会自动打开这个公众号
网站的二维码自动消失,登录成功
本质是:
网站背后的企业,先在微信公众平台注册服务号,并进行相关配置,主要是服务器接口地址。
用户点击网站上的使用微信登录按钮
页面js请求后台接口,后台调用微信接口,生成带参数的二维码,得到一个临时(常用)或永久的二维码地址,获取时,会传一些数据给微信,比如业务数据、这个二维码的唯一id,最后把二维码地址和唯一id返回给前端。
前端把二维码地址转成二维码展示给用户,同时开始轮询调用接口,参数主要是唯一id,目的就是不停地问后台:用户扫码了没有?用户关注了公众号了没有?授权登录成功了没有?
用户微信手机扫二维码,跳转到公众号,关注公众号来授权登录,如果已关注,自动认为授权。
用户授权后,微信调用服务器接口地址,这一步称为进行了事件推送,后台就能拿到用户openId、那些数据,比如业务数据、这个二维码的唯一id等等,后台对这些数据临时存库。
同时,前端页面在不停地轮询调用接口,后台存库后,再接到前端的请求,根据唯一id对比,能得知用户已经授权登录,可以进行业务处理,比如生成用户token和用户信息,返回给前端。
前端轮询中,收到用户登录成功的信号,登录成功。
之后,服务器可以根据业务,给用户推送服务通知:模板消息接口。
Last updated