项目上接到一个需求,为方便员工登录各种内部系统,统一以企业微信为入口,在企业微信面板中增加系统跳转链接实现单点登录。

整体思路比较简单,大致如下:

1.由于自建系统和企业微信的用户ID不同,所以需要建立一张用户对应表,通过企业微信API获取用户列表将两个系统的用户关联起来。

2.在企业微信管理后台填写系统跳转链接,跳转时url会增加code参数,这个code就是当前登录用户的加密字符串。

3.在自建系统中获取到code参数后调用企业微信获取成员信息API,返回结果中包含企业微信用户ID。

4.拿到企业微信用户ID后到用户对应表中查找,如果有对应用户记录,则使用自建系统的用户ID执行登录操作。

接下来是具体实现步骤:(文中wwlocal.qq.com需指向企业微信的服务器地址)

1.首先到企业微信的接口配置参数页面查看相关信息,红框部分是关键信息,调用API时需要用到:

2.调用获取部门成员详情接口获取员工列表,总共需要三个参数:access_token、department_id、fetch_child,其中access_token需要单独获取

3.获取access_token,这个在文档的开头有介绍

调用获取token的接口,需要两个参数:corpid、corpsecret,这时候就用到了第一步截图中的信息,结果返回后为避免频繁调用,建议将token缓存,有效期一般为2小时。

4.员工列表接口请求完成后与系统用户做对比进行关联操作,然后进行下一步,在企业微信管理后台添加自建系统跳转链接,详细内容请查看开发文档中-OAuth2.0网页授权 章节。

5.通过企业微信面板登录管理后台:

登录后可看到如下页面:

首先在网页授权及JS-SDK中设置可信域名,直接写ip即可,有端口号的需要加上,不需要加http头

然后到自定义菜单中配置需要跳转的系统链接:

这里的链接需要按照开发文档 OAuth2.0网页授权章节中的关键步骤部分,链接默认打开的是内置的浏览器,如果需要打开外部默认浏览器需要增加参数:&target=out

6.跳转后的效果如下,code参数就是我们需要的信息,这里的code只能使用一次且有效时间为5分钟:

OAuth2.0流程图如下:

7.最后一步,需要做的就是用拿到的code参数调用获取成员信息接口,根据返回用户信息与系统用户对比进行后续登录等操作。

以上就是企业微信单点登录自建系统的整个过程,特此记录以作回顾,分享给有需要的同学们,祝大家生活美好,工作顺利!

2020.6.19 北京昌平

原文:https://www.cnblogs.com/Jackie-sky/p/13166497.html

企业微信 自建服务器,企业微信单点登录自建系统过程记录相关推荐

  1. 微信的url服务器接收微信信息的配置

    微信的url服务器接收微信信息的配置: http://hlg.ngrok.xiaomiqiu.cn/wgo-api-gateway/handle 其中 hlg.ngrok.xiaomiqiu.cn 为 ...

  2. C/S架构程序多种类服务器之间实现单点登录(转)

    (一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...

  3. 企业微信 自建服务器,企业微信对接企业自建应用(小程序、h5登陆认证)

    企业微信与自建h5应用和小程序对接 1.企业微信对接h5 网页授权登登陆链接 https://open.weixin.qq.com/connect/oauth2/authorize?appid=COR ...

  4. 微信 账户升级服务器地址,微信支付商户平台账户升级后有哪些新功能呢?

    注册了微信公众号的服务号,是可以再申请微信支付的,自从微信公众号的兴起,随着技术的改革和革新,微信公众号也随着做出了不少的调整和变化,首先,微信支付商户平台账户升级,这标志着微信服务好有了很多不同的地 ...

  5. 微信遇到特殊服务器,解决微信网页授权,出现errcode:40163,errmsg:codebeenused,看似微信访问了2次这个回调接口的问题...

    先说说自己理解的微信机制: 微信内访问自己服务器的页面,如果访问出错,微信就会认为是微信自身的问题,那么他就会开启另外一个IP来访问这个页面(什么上海的IP,深圳的IP不等),再把访问结果发回用户端, ...

  6. 微信无法连接服务器10,微信无法连接到服务器【应对方式】

    不知道大家有没有遇到过微信无法连接到服务器 的情况,近日小编就遇到了关于微信无法连接到服务器 的问题,相信大家对如何解决微信无法连接到服务器 的 方法不是特别清楚,下面是小编给大家收集的关于微信无法连 ...

  7. 微信公共号系列---快速整合微信多端页面授权之单点登录

    本人从事互联网项目java开发五年,会java,微信公共号开发,python,nodejs,爬虫等技术,对发票项目很熟悉,如果想交一个朋友请加QQ技术交流群@群主吧:131831533 .本文章来源于 ...

  8. 微信投屏服务器出错,微信发布7.0.21版本,修复异常问题,增加超实用新功能

    原标题:微信发布7.0.21版本,修复异常问题,增加超实用新功能 iOS微信又更新了,今天发布v7.0.21版本,距离上次更新才两个礼拜的时间.以往微信的更新频率是比较慢的,这次之所以如此之快地发布新 ...

  9. 肯德基微信小程序连接服务器异常,微信小程序平台常见问题及解决方案

    原标题:微信小程序平台常见问题及解决方案 现在越来越多的人开始制作自己的小程序,但由于缺少经验,以及对微信小程序平台缺乏了解,会犯一些低级错误,导致自己制作小程序的时候频频受阻.这里我列举了一些常见问 ...

最新文章

  1. acwing算法题--分组背包问题
  2. 分布式事务 TCC-Transaction 源码分析 —— 项目实战
  3. 深度学习之三:深度学习基本思想
  4. Vue中foreach数组与js中遍历数组的写法
  5. C++ string的使用
  6. Precision-Recall Curve
  7. 小波变换和motion信号处理(二)【转载】
  8. windows mobile 开发 web service 未能建立与网络的连接、无法连接到远程服务器
  9. ROS学习笔记5(理解ROS节点)
  10. Django之modelform
  11. Java/JSP中使用JDBC连接SQL Server 2005~(2008类似)
  12. python3卸载_python3卸载
  13. compiled.php,laravel compiled.php 缓存 命令行
  14. ROS仿真环境中实现自主导航
  15. 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
  16. MySQL学习笔记——数据库的创建、修改与删除
  17. href=“JavaScript:;”是啥意思?
  18. python编程猜拳游戏_python写猜拳小游戏
  19. myeclipse 2017 ci 10 破解包+教程(亲测已成功)
  20. 折页式ppt目录怎么制作?

热门文章

  1. 火狐浏览器 如何设置成 打开一个新的页面,原有的页面继续存在
  2. MIKE 21 教程 2.2 Domain, Time, Module Selection设置教学
  3. CPA三--商品流通企业发出存货的方法(转载)
  4. 超级好的截图工具HprSnap
  5. Java基础:编程语言、软件与Java语言概述
  6. html页面刷新回到顶部_HTML5 回到顶部
  7. 大华系统管理服务器,[功能测评]大华(Dahua)智能运维管理系统平台
  8. linux服务器挂硬盘无法启动不了怎么办,Linux硬盘问题的八种解决技巧
  9. [公告] 装机员系统下载合集(五月更新发布)!
  10. 帝国cms小程序插件1.0上线,支持百度/微信/抖音等小程序