1 前期准备工作
- 获取企业相关信息: 企业ID ,AgentId ,企业Secret
- 网页授权的可信域名配置 :应用管里-> 开发者接口-> 网页授权及JS-SDK 例子:lx.com,并将该可信域名nginx反向代理
- 配置企业可信ip
- 接口文档:开始开发 - 接口文档 - 企业微信开发者中心
2 对接企业微信扫码登录(OAuth2授权登录)前后端分离项目
1. 后端构建前端需重定向的 redirect_uri
例子:可信域名/login?action=get&code=CODE
2. 前端在用户扫码之后跳转OAuth2链接
需注意 因需要获取用户敏感信息 -> 设置 scope=snsapi_privateinfo
3.获取用户code并请求到后端
4. 根据企业ID和凭证密钥 调用接口凭证接口 ,获取access_token(建议将access_token存入redis 缓存,并将失效时间设置为1小时)
5. 根据access_token及用户code获取访问用户身份 user_ticket
6.根据access_token及 user_ticket 获取访问用户敏感信息
7. 根据用户信息比对我们系统用户信息
存在则创建token,并重定向将token返回给前端
String token = TokenUtil.encryptTenantToken(userId);
String key = Constants.USER_KEY + tenantUser.getId();
redisClient.set(key, token, Constants.TOKEN_EXPIRE);
// 发送重定向响应:
StringBuilder url = new StringBuilder();
url.append("/redaviator/r?").append("token=").append(token);
String redirectToUrl = url.toString();
resp.sendRedirect(redirectToUrl);