0.6.0 • Published 7 years ago

node-wechat-oauth v0.6.0

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

Wechat OAuth

npm version Build Status Dependencies Status Coverage Status

微信公众平台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的示例代码:

Mongoose | MySQL

引导用户

生成引导用户点击的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重写

License

MIT

0.6.0

7 years ago

0.5.0

7 years ago

0.4.0

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago