发表于: 2019-12-27 23:03:13

1 1341


今天完成的事:

  • appid就是你申请的服务号的appid,可以在公众号基本配置中查看。
  • redirect_uri代表授权成功后回调的地址,域名必须和步骤1中填写的网页授权域名一致,比如要回调的页面uri是/home,那么回调地址应为http://www.sawyer.com/home,并且不能带端口。注意,REDIRECT_URI的值需要进行urlEncode处理;
  • response_type填写code即可。
  • scope代表授权类型,有基本级别snsapi_base以及用户信息级别snsapi_userinfo。如果是base级别,对于用户来说是无感知的静默授权,但是能获取到的也只有用户的openid而已,如果是userinfo级别,那么对于已经关注公众号的用户来说也是静默授权,但是对于没有关注公众号的用户,则需要用户手动点击授权页面,如下。
    用户手动确认授权
  • state是用户自定义参数,回调时会原封不动传回来。可不填。
注意,微信会对请求网页授权接口的参数进行正则强匹配校验,所以请确保参数的顺序。
如果授权成功,则微信会将请求重定向到REDIRECT_URI指定的地址,并且带上code和state两个参数。
  1. 使用上一步返回的票据code去微信服务器换取网页授权基础信息,其中包括网页授权access_token。注意,这里的网页授权access_token和下一篇的基础服务access_token不同。请求地址为:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    针对这个请求的参数进行一下解释:
  • appid就是你申请的服务号的appid,可以在公众号基本配置中查看。
  • secret就是你申请的服务号的appsecret,可以在公众号基本配置中查看。
  • code就是上一步返回的code,是微信用户网页授权的短期一次性票据,有效期5分钟。
  • grant_type填写authorization_code即可。

如果scope类型为snsapi_base,那么微信网页授权到此结束,已经拿到微信用户的openid。注意,任意微信用户对于同一公众号有唯一openid,对于不同公众号有不同openid,所以开发者需要在多个微信公众号中鉴别同一个用户的话,需要用到unionid机制。要获取用户的unionid需要开发者的公众号绑定到微信开放平台后,使用snsapi_userinfo级别的网页授权才能获取,或者用户关注后使用微信用户管理接口获取用户详细信息,这个在下一篇中会介绍。

  1. 如果scope类型为snsapi_userinfo,那么可以使用上一步获得的网页授权access_token来请求微信接口获取用户详细信息。接口链接如下:
    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    针对这个请求的参数进行一下解释:
  • access_token上一步获取到的网页授权access_token,网页授权access_token是一个长期令牌,有效期2小时,即上一步返回的expires_in的时间。如何刷新下一步会讲。
  • openid上一步获取到的微信用户的openid。
  • lang返回国家地区语言版本,zh_CN简体,zh_TW繁体,en英语。

注意,网页授权access_token作为机密信息,不允许保存在前端,该请求应由后端发起。到这一步已经取到了微信用户的详细信息,unionid是需要用户绑定公众号到微信开放平台后才会出现。这里要吐槽一下微信开发文档,其中有不少错误,比如这里的返回对象,官网的文档就少了"lang"这一项(2018/1/17)。

  1. 如果需要的话,使用步骤3获取的refresh_token请求以下链接刷新网页授权access_token:
    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
  • appid公众号的appid。
  • grant_type填写refresh_token。
  • refresh_token 步骤3获取到的refresh_token。

请求成功后返回对象和步骤3是一样的,就是微信网页授权基本信息。


明天计划的事:

前台-个人中心
     1.页面布局
     2.个人中心页面样式
     3.获取用户数据
     4.渲染用户id
     5.渲染用户头像.
     6.点击收藏、已购路由跳转


遇到的问题:

暂无

收获:

如何前登陆授权


返回列表 返回列表
评论

    分享到