针对微信公众号第三方开发者,封装了授权流程中的主要api, 详情见微信开放平台文档授权流程说明。
同时,封装了代公众号发起网页授权的相关接口,详情见代公众号发起网页授权
该模块主要参考了node-webot的wechat-oauth 和wechat-api
使用该插件完成授权之后,可以利用open-wechat-api去执行小程序的各项主动调用api
功能列表
基础授权
- 获取第三方平台component_access_token
- 获取预授权码pre_auth_code
- 获取公众号的接口调用凭据和授权信息
- 刷新授权公众号的接口调用凭据
- 获取授权公众号账号基本信息
- 获取授权方的选项设置信息
- 设置授权方的选项信息
网页授权
- 获取授权页面的URL地址
- 通过code换取access_token
- 刷新access_token
- 通过access_token获取用户基本信息
安装
$ npm install weixin-open-oauth
使用方法(基础授权)
使用该插件需要自己缓存微信第三方平台所需的component_verify_ticket
,
component_access_token
,建议存储在redis中,参考以下方法创建授权对象实例:
var WXAuth = ; /* * 获取全局component_verify_ticket的方法 * 从redis缓存中读取 */var { let ticket = await redisClient; if!ticket throw 'ticket is null' return ticket}; /* * 获取全局component_access_token的方法 * 从redis缓存中读取 */var { let token = await redisClient; return JSON}; /* * 保存component_access_token到redis中 */var { return await redisClient;}; var wxauth = appid appsecret getVerifyTicket getComponentToken saveComponentToken;
获取第三方平台component_access_token
wxauth;
获取预授权码pre_auth_code
wxauth;
获取公众号的接口调用凭据和授权信息
// auth_code 授权完成后微信返回的授权码wxauth;
刷新授权公众号的接口调用凭据
// authorizer_appid 授权公众号的appid// authorizer_refresh_token 从微信获取的公众号刷新token,存储在db中wxauth;
获取授权公众号账号基本信息
// authorizer_appid 授权公众号的appidwxauth;
获取授权方的选项设置信息
// authorizer_appid 授权公众号的appid// option_name 选项名wxauth;
设置授权方的选项信息
// authorizer_appid 授权公众号的appid// option_name 选项名// option_value选项值wxauth;
网页授权
获取授权页面的URL地址
// appid 授权公众号的appid// redirect 授权后要跳转的地址// state 开发者可提供的数据// scope 作用范围,值为snsapi_userinfo和snsapi_base,前者用于弹出,后者用于跳转var oauthUrl = wxauth;
通过code换取access_token
// appid 授权公众号的appid// code 授权获取到的code// callback 回调函数wxauth;
刷新access_token
// appid 授权公众号的appid// refresh_token 授权刷新token// callback 回调函数wxauth;
通过access_token获取用户基本信息
// openid 授权用户的唯一标识// access_token 网页授权接口调用凭证// lang 语言版本,zh_CN 简体,zh_TW 繁体,en 英语// callback 回调函数wxauth;