• 微信扫码登陆流程


    以下为几类型微信登录的功能说明(基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统):

    序号类型授权域/接口用户侧使用流程接入流程
    1App接入微信SDK,并调用snsapi_userinfo(1)在App内选择使用微信登录 (2)拉起微信客户端,打开用户授权页,完成登录授权(1)注册微信开放平台(open.weixin.qq.com)帐号,并完成开发者资质认证 (2)申请【App移动应用】并审核通过后可以使用,查看开发文档
    2网站应用snsapi_login(1)用户使用微信“扫一扫”,在PC端扫码(2)客户端打开授权页,完成登录授权(1)注册微信开放平台(open.weixin.qq.com)帐号,并完成开发者资质认证(2)申请【网站应用】并审核通过后可以使用,查看开发文档
    3微信客户端内H5使用公众号的登录能力: snsapi_base snsapi_userinfosnsapi_base:静默授权 snsapi_userinfo: (1)用户在H5内点击登录,唤起授权弹窗 (2)用户侧完成登录授权(1)注册微信公众号,选择“服务号”类型,并完成微信认证(2)在公众号管理后台设置回调域名(3)接入微信登录能力,查看开发文档
    4小程序wx.login wx.getUserInfowx.login:静默授权,开发者可获取openid wx.getUserInfo: (1)用户在小程序内点击组件,唤起登录窗口(2)用户侧完成登录授权(1)注册小程序 (2)接入微信登录功能,查看开发文档,查看登录流程设计指引

    说明:

    • 序号1——“App”针对的是:在手机中打开移动应用时,使用微信授权登录。
    • 序号2——“网站应用”针对的是:使用浏览器访问的Web网站时,使用微信授权登录

    • 序号3——“微信客户端内H5”针对的是:在微信客户端中访问第三方网页时,使用微信授权登录。

    • 序号4——“小程序”针对的是:打开微信小程序时,使用微信授权登录。

    博瑞霖目前需要使用的功能为:“网站应用”和“小程序”。

    一、小程序使用微信授权登录

    该部分业务逻辑基本已完成。

    二、网站应用使用微信授权登录

    该部分功能未完成,目前有两个方案:

    1、基于“网站应用”的OAuth扫码登录

    参考链接:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

    可参考的网站:https://www.zhihu.com(微信授权后,知乎会要求用户绑定手机号)

    前置工作:在微信开放平台注册创建网站应用,审核通过够后,设置用于OAuth回调验证的后端URL(API接口)。

    前端工作:

    网站内嵌二维码微信登录 JS 实现。

    后端工作:

    完成OAuth2认证流程。

    优点:

    • 不需要自己制作二维码,调用微信开发平台API,可以直接生成登录用二维码。
    • 前端和后端的开发有标准的开发文档。

    缺点:

    • 需要注册网站应用,微信审批通过后,配置授权回调URL。

    • 根据官方文档描述网站应用微信授权域为“snsapi_login”,该授权域仅能获取用户的OpenID,目前小程序登录仅获取了用户的OpenID。针对同一用户的多个角色(医生和销售),会有两个OpenID(对应两个小程序),无法预判OAuth验证接口调用时是否会发生代码层面的逻辑问题。

    • 可考虑修改小程序逻辑,取用户的UnionID。但需要实际测试,能否获取用户授权的作用域“snsapi_userinfo”(该授权域,可以获取比较详细的用户信息)。

    • “snsapi_login”无法获取用户的手机号,如果用户不存在,无法登录。(这个其实不算是缺点,我们本身的逻辑就不支持这种方式的登录

    • 二维码图案样式固定,无法更改。

    2、 使用小程序认证

    可参考网站:https://www.csdn.net(采用CSDN小程序验证,若小程序登录未过期,验证时直接跳过授权。也可能是首次授权后,后面就需要授权了。)

    优点:

    • 可自己制作二维码。

    • 验证逻辑可控。

    • 小程序验证可获取相对完整的用户信息。

    缺点:

    • 前端和后端开发工作量相对会多一下,同时开发工作开始前要规划好授权验证逻辑(要由足够的安全性)。
  • 相关阅读:
    【c++拷贝构造和拷贝赋值的区别】
    为什么要租用高防服务器?
    【雷达信号处理基础】第1讲 -- 雷达系统概述
    JAVA毕设项目商品供应管理系统(java+VUE+Mybatis+Maven+Mysql)
    redis以后台的方式启动
    Redis总结
    Node端异常捕获
    vue官方文档(18) :具名插槽示例
    java-net-php-python-ssm公交查询系统计算机毕业设计程序
    Docker安装SkyWalking
  • 原文地址:https://blog.csdn.net/yf18040578780/article/details/126613649