node-wechat-oauth
v0.6.0
Published
微信公众平台OAuth
Downloads
3
Readme
Wechat OAuth
Features
- OAuth授权
- 获取基本信息
Installation
npm install node-wechat-oauth --save
Docs
文档在这里
Usage
初始化
const OAuth = require('node-wechat-oauth');
const oauth = new OAuth('your appid', 'your secret');
以上即可满足单进程使用
当多进程时, token需要全局维护, 以下为保存token的接口
持久化时请注意, 每个openid都对应一个唯一的token!
const oauth = new OAuth('appid', 'secret', async (openid) => {
const txt = await fs.readFile(`${openid}:access_token.txt`, 'utf8');
return JSON.parse(txt);
}, async (openid, token) => {
await fs.writeFile(`${openid}:access_token.txt`, JSON.stringify(token));
});
全局维护AccessToken的示例代码:
引导用户
生成引导用户点击的URL
const url = oauth.getAuthorizeURL('redirectUrl', 'state', 'scope');
如果是PC上的网页, 请使用以下方式生成
const url = oauth.getAuthorizeURLForWebsite('redirectUrl');
获取OpenID和AccessToken
用户点击上步生成的URL后会被重定向到上步设置的 redirectUrl
, 并且会带有code
参数, 我们可以使用这个code
换取access_token
和用户的openid
const result = await oauth.getAccessToken('code');
const accessToken = result.data.access_token;
const openid = result.data.openid;
获取用户信息
如果我们生成引导用户点击的URL中scope
参数值为snsapi_userinfo
, 接下来我们就可以使用openid
换取用户详细信息 ( 必须在getAccessToken方法执行完成之后 )
const userinfo = await oauth.getUser(openid);
Credits
This repo was forked from the MIT licensed node-webot/wechat-oauth
并用async/await
重写