0.6.0 • Published 8 years ago
node-wechat-oauth v0.6.0
Wechat OAuth
Features
- OAuth授权
- 获取基本信息
Installation
npm install node-wechat-oauth --saveDocs
文档在这里
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重写