网站首页 > 开源技术 正文
对于企业单位使用的业务系统,虽然并发量不大,但围绕企业内部管理的流程和组织机构、人员之间的关系都要进行系统的维护。又由于现在企业对移动办公、便携式办公的要求越来越迫切。一些审批的流程也未必一定要在PC前完成。
之前的项目就是实现微信小程序连接企业微信,获取企业微信中当前员工信息并认证到企业内部业务系统的过程。
系统环境
这里只介绍系统架构中使用到的主要组件,包括:Springboot1.5.7和apache-shiro1.3.2。shiro比较轻量级,使用起来也比较方便。
前置条件
这里介绍一些使用微信小程序认证企业微信的必要条件。
手机号认证
业务系统的认证过程是传统的用户名和密码的方式。其中用户名使用的是用户手机号码,这里主要是为了与微信小程序的用户手机号码进行匹配。
当然,也可以是两套认证机制。比如业务系统本身的登录认证使用用户名,微信小程序使用手机号码。都是可以的。
已经是企业成员
用户已经加入了企业微信,即在企业微信的后台管理端已经添加了该用户,
认证流程
时序图
认证流程
这里先推荐一个微信开发的Java SDK。非常好用。
https://github.com/Wechat-Group/WxJava
对认证时序的详细描述:
1、 wx.qy.login获取code。微信小程序调用企业微信的login接口获取对应code。此code的有效期是5分钟,并且只能使用一次。
2、 微信小程序通过wx.request发送code给后台业务系统进行认证。
3、 后台业务系统根据企业微信的corpid和secret到企业微信后台获取登录的access_token。
调用接口:https://qyapi.weixin.qq.com/cgi-bin/gettoken?&corpid=****&corpsecret=****
4、 根据第三步中提供的接口url获取access_token返回业务系统。
5、 业务系统根据access_token和小程序发送的code获取该用户信息。其中grant_type的参数是固定的:authorization_code
调用接口:https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?&js_code=*****&grant_type=authorization_code &access_token=******。
6、 返回用户信息给业务系统。此处的用户信息中包含userid和sessionkey等内容。还没有我们想要的手机号码和用户名等。
7、 根据第六步中获取到的userid获取用户详情。
调用接口:https://qyapi.weixin.qq.com/cgi-bin/user/get?userid=111
8、 返回用户详情信息,此处已经包含用户手机号码。
9、 发送手机号码到shiro中进行认证,获取业务系统的登录token。此处就走之前写好的认证接口就可以了。如果用户名和小程序认证的方式不同,需要在shiro中添加一个新的过滤器来实现手机号码的认证。
10、 返回登录业务系统的token。
11、 将token返回给微信小程序。
关注作者+转发, 然后私信关键词(springcloud)就能免费领取一套springcloud视频教程
- 上一篇: 使用SDK方式进行微信授权(sdk授权怎么设置)
- 下一篇: 微信公众号(服务号)通过程序创建菜单
猜你喜欢
- 2024-10-12 Java实现微信支付程序的解决方案(java实现微信支付程序的解决方案有哪些)
- 2024-10-12 微信支付的SDK曝出重大漏洞,看程序开发人员怎么讲?
- 2024-10-12 JAVA 线上故障排查完整套路!牛掰(java在线运行平台)
- 2024-10-12 Android 11 安装外部来源应用需要重启 APP
- 2024-10-12 网络安全之Springboot heapdump信息泄露复现
- 2024-10-12 Fanx 语言 3.2 发布,全面支持中文编程
- 2024-10-12 如果网站的 Cookie 特别多特别大,会发生什么情况?
- 2024-10-12 JAVA后端推送企业微信消息到普通微信
- 2024-10-12 xk-time 1.1.1 发布,Java 时间工具包
- 2024-10-12 微信、企业微信和支付窗极速SDK三合一,JeeWx-api 1.2.0版本发布
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)