• JS&微信_微信授权


    1.前置条件

    1. 服务号(企业) -- 通过微信认证
      • 可以在微信公众平台-开发-接口权限查看
    2. 需要先配置一下授权回调域名(只能配置一个)
      • 开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息
      • 请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

    2.步骤

    除了步骤一,其他都必须由后台请求

    由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

    1. 用户同意授权,获取code(可以由前端来做)
    2. 通过code换取网页授权access_token
    3. 刷新access_token(如果需要)
    4. 拉取用户信息

    3.具体实现(获取用户详细信息snsapi_userinfo)

    1. 准备一个空白页面,在空白页面进行授权获取code-用户授权同意

    2. 是否是微信(是则继续,否则加载实际页面结束)

      let ua = navigator.userAgent.toLowerCase();
      let isWeixin = ua.indexOf('micromessenger') !== -1;
      
    3. 判断是否拿到code(是则发起后台拿到用户信息步骤并加载实际页面结束,否则继续)
      3.为了解决只能配置一个授权回调域名,请求后台做一个中间层
      文档

      1. 让后台传一个微信统一授权地址,本地跳转到后台指定的路径
      2. 后台指定的路径去跳转到微信授权
      3. 同意授权后在跳回实际页面
        4.为了防止分享的时候获取不到下一个人的授权信息
      • 需要在分享的时候清空授权返回的code,仅需要分享的链接清空!获取后台分享配置的不需要!
        5.为了防止用户获取到授权后刷新页面code过期重复获取用户信息问题
      • 可以利用sessionStorage存储一个标识进行识别

    以上内容,如有错误请指出,不甚感激。
    如需转载,请注明出处

  • 相关阅读:
    GO语言系列- 结构体和接口
    GO语言系列- 高级数据类型之数组、切片、map
    tomcat8开启APR模式
    python中的subprocess.Popen()使用详解---以及注意的问题(死锁)
    linux dig 命令使用
    究竟什么时候该使用MQ?
    Python 列表(List) 的三种遍历(序号和值)方法
    python函数里引用全局变量
    python(xlsxwriter模块使用)
    Linux下生成patch和打patch
  • 原文地址:https://www.cnblogs.com/adelina-blog/p/10832735.html
Copyright © 2020-2023  润新知