介绍
- 企业微信授权逻辑和微信端授权逻辑对于前端无 大的差别
- 对于后端来说:略
- 暂不支持 企业微信外打开
其他须知
- 企业微信无开发者工具可供使用
- 企业微信和微信一样有npm 版本的 jsdk可供使用
"@wecom/jssdk": "^1.1.10"
// http//www.npmjs.com/package/@wecom/jssdk
开始前
- 入口及可见权限 (理论必须)---- 入口放在工作台tab中
- 可信域名https (必须)
- corpId (必须)
- secret (必须)
登陆授权实现(/api/xxxxx/get-token | 业务后端实现:入参 code,返回token)
图解登陆流程:

图解详细流程:

文字版授权流程:
- route拦截器中判断路由元信息(mate)是否需要登录
- 判断是否本地有token
- window.replace 到微信服务器 http//www.weixin.com?path=www.xxxxxxxx.com
- 微信服务器收到get网页请求加载出业务网页,微信通过 wxjsdk 开启/注入了 用户同意 授权 代码
- 用户同意(隐式)后在返回业务网页的url链接中带上code=xxxx
以上的表象为:输入A链接,实际replace到weixin,微信再重定向到A => ** http//www.xxxx.com?code=XXXX **
- 前端拿着code请求后端服务器一个接口 BB
- 后端拿着code以及企业或公众号的 appid等唯一key 去微信服务器提供的接口 换取 用户信息
- 后端拿到微信服务器返回的 用户信息的 wxid 当作唯一值生成token
- 前端从BB接口里返回的token种到本地
- 将所有api接口都带上token值返回给后端即可
逻辑补充:
- 企业微信回调的code只能被消费一次
- axios接口拦截后端报未登录或token失效或code无效 (清楚本地token,不再重新登陆,引导重新打开页面)
Q&A
- 如何调试?登陆后的token手动种到浏览器,绕过前端登陆或者在路由mate中配置 不需要登陆
网友评论