美文网首页
微信网页授权

微信网页授权

作者: Zzz_CH | 来源:发表于2018-11-19 14:13 被阅读28次

背景

用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

配置

  1. 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

  2. 授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.htmlhttp://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.comhttp://music.qq.comhttp://qq.com无法进行OAuth2.0鉴权

两种授权方式

微信提供了两种授权方式来应对不同的使用场景。通过网页授权作用域 scope 参数控制。

静默授权

  1. 静默授权:用户进入页面后自动授权并跳转回页面,这种授权对用户无感知。通过这种授权我们只能获取到用户的 openid,无法获得用户的其他信息。
  2. 使用场景:只需要标识该用户,而不需要收集其他信息的场景都可以使用。比如投票、点赞等场景。
  3. scope: snsapi_base

主动授权

  1. 主动授权:用户进入页面后会有授权弹窗,需要手动同意。该方试用来获取用户的基本信息
  2. 注意:对于已关注公众号的用户,用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope: snsapi_userinfo,也是静默授权,用户无感知。
  3. scope: snsapi_userinfo

具体流程

  1. 用户进入页面,获取 code
  2. 通过 code 换取网页授权 access_tokenopenid,静默授权到这步结束
  3. 通过 access_token 获取用户信息

获取CODE

引导用户跳传至该链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE

用户同意授权或静默授权后将跳转至 redirect_url?code=CODE&state=STATE 这个地址并带上生成的 code

code 作为换取access_token的票据,只能使用一次,5分钟未使用自动过期。

参数说明

通过 code 换取网页授权 access_token

注意,这里的 access_token调用公众平台API所需的基础 access_token不是一个东东,只是名字一样而已。

这一步是在服务端完成的,需要公众号的 secretaccess_token 也不可以传给客户端。

请求接口

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

返回

{ 
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

拉取用户信息(需scope为snsapi_userinfo)

当网页授权作用域为 snsapi_userinfo时,开发者通过 access_tokenopenid 获取用户信息。

请求接口

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

返回

{    
  "openid": "OPENID",
  "nickname": "NICKNAME",
  "sex": "1",
  "province": "PROVINCE"
  "city": "CITY",
  "country": "COUNTRY",
  "headimgurl":    "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
  "privilege": [ "PRIVILEGE1" "PRIVILEGE2"     ],
  "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

参考资料

微信网页授权官方文档

相关文章

  • 基于Node.js的微信JS-SDK后端接口实现(三)

    微信公众号开发之五微信网页授权 开始之前建议先阅读微信官方文档 微信公众号开发之五微信网页授权 一.网页授权的作用...

  • django: 微信网页授权

    微信网页授权基础知识 网页授权的最终目的就是获取微信的用户信息,微信的网页授权方式有两种 snsapi_base:...

  • 微信公众号开发(二)

    微信公众号开发文档 微信网页授权 微信客户端中访问第三方网页,可通过 微信网页授权机制 来获取用户信息。授权机制:...

  • 微信开发之微信网页授权

    微信网页授权 所谓的微信网页授权说白了就是 用户微信客户端内访问第三方网页,公众号可以根据网页授权这个机制来获取用...

  • 微信网页授权

    微信通过网页授权可以在网页内获取微信用户信息,进而在网页内实现相关的业务逻辑。 微信网页授权的scope有两种,一...

  • 微信网页授权

    重新整理做过的功能,以及过程遇到问题,温故而知新 平台开发文档 一 准备工作 (a.接入 b.配置) a) 修改/...

  • 微信网页授权

    背景 用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 配...

  • 微信网页授权

    一、(测试号为例)大家可以先查看http://www.cnblogs.com/txw1958/p/weixin71...

  • 微信网页授权

    微信网页授权文档地址: https://mp.weixin.qq.com/wiki?t=resource/res_...

  • vue + js 实现微信授权登录

    描述点 微信相关开发知识了解 微信网页授权 vue router.beforeEach vuex 授权详解 页面...

网友评论

      本文标题:微信网页授权

      本文链接:https://www.haomeiwen.com/subject/gmnofqtx.html