Skip to content

网页授权

此文档为企业微信内部应用开发的网页授权,非第三方应用网页授权。

示例代码以 koa 框架为例,其他框架请自行转换。

第三方应用oauth2

🚨 请先认真阅读:构造网页授权链接 - 构造第三方应用oauth2链接

发起授权

js
// 页面 /oauth/login

const { OpenWork } = require('node-easywechat');

const app = new OpenWork({
  // ...
});

// 第三方应用id(即ww或wx开头的suite_id)
const suiteId = 'xxx';

// 获取 oauth 对象
const oauth = await app.getOAuth(suiteId);

// 授权完成后的回调地址
const callbackUrl = 'http://www.abc.com/oauth/callback';

// 授权地址
const authUrl = oauth.redirect(callbackUrl);

// 302重定向到 authUrl,以 koa2 为例
ctx.redirect(authUrl);

处理授权回调

参考文档:获取访问用户身份

js
// 页面 /oauth/callback
// 微信会自动在该页面的URL后面加上 code 参数

const { OpenWork } = require('node-easywechat');

const app = new OpenWork({
  // ...
});

// 第三方应用id(即ww或wx开头的suite_id)
const suiteId = 'xxx';

// 获取 oauth 对象
const oauth = await app.getOAuth(suiteId);

// 获取 code 参数,以 koa2 为例
const code = ctx.query.code;

// 获取用户信息
const user = await oauth.detailed().userFromCode(code);

user 对象包含以下属性:

  • user.id: 对应企业微信英文名(userid)
  • user.raw: 获取企业微信接口返回的原始信息

企业oauth2

🚨 请先认真阅读:构造网页授权链接 - 构造企业oauth2链接

示例代码与上方的 第三方应用oauth2链接 基本一致,唯一的区别是获取oauth对象时,使用的是 getCorpOAuth 方法,需要传入企业的 CorpID。

参考阅读

本模块基于 node-socialite 实现,更多的使用说明请阅读该依赖包的文档。

基于 MIT 许可发布