企业微信扫码登录功能 :前后端分离项目

本文详细介绍了如何在企业微信环境中实现OAuth2扫码登录,包括前期准备、前端与后端交互、获取access_token和user_ticket、用户信息验证以及使用Redis缓存策略。最后,生成并返回安全token给前端用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 前期准备工作

  1. 获取企业相关信息: 企业ID   ,AgentId  ,企业Secret    
  2. 网页授权的可信域名配置 :应用管里-> 开发者接口-> 网页授权及JS-SDK  例子:lx.com,并将该可信域名nginx反向代理
  3. 配置企业可信ip   
  4. 接口文档:开始开发 - 接口文档 - 企业微信开发者中心

2 对接企业微信扫码登录(OAuth2授权登录)前后端分离项目

1. 后端构建前端需重定向的 redirect_uri

例子:可信域名/login?action=get&code=CODE

2. 前端在用户扫码之后跳转OAuth2链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE&agentid=AGENTID#wechat_redirect

需注意 因需要获取用户敏感信息 -> 设置 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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值