code换取微信openid_JS&微信_微信授权

21d3fa303f123e3c8ad03c0f3cb77522.png

  • 微信api

  • 授权demo

  • 获取openid --- snsapi_base

  • 获取用户信息 --- snsapi_userinfo

1.前置条件

  1. 服务号(企业) -- 通过微信认证

  • 可以在微信公众平台-开发-接口权限查看

需要先配置一下授权回调域名(只能配置一个)

  • 开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息

  • 请注意,这里填写的是域名(是一个字符串),而不是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.为了解决只能配置一个授权回调域名,请求后台做一个中间层
    文档

  • 需要在分享的时候清空授权返回的code,仅需要分享的链接清空!获取后台分享配置的不需要!
    5.为了防止用户获取到授权后刷新页面code过期重复获取用户信息问题

  • 可以利用sessionStorage存储一个标识进行识别

  1. 让后台传一个微信统一授权地址,本地跳转到后台指定的路径

  2. 后台指定的路径去跳转到微信授权

  3. 同意授权后在跳回实际页面
    4.为了防止分享的时候获取不到下一个人的授权信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值