分享

企业微信单点登录自建系统过程记录

 阳关旧友 2022-02-25

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

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

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 北京昌平

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多