网站进行企业微信授权登录(附带代码超详细版)
上面是官方的图片,看上去比较复杂。因此我用直白简洁的语言梳理下流程。
2、你拿着手机扫描二维码,确认登录之后,页面就会自己进行重定向的跳转,跳转的url如何配置下面再讲,但是注意,这个重定向的url可以是内网地址
4、获取到userid后就可以去数据库中查询这个userid和自己系统用户的对应关系了,到了这里就和自己网站的登录逻辑对应上了
开发前准备
参数获取
这三个参数的说明文档见这里
设置授权回调域
请直接参照文档进行配置
正式开始开发
获取二维码
用以下网址获取
参数解释如下:
这种获取二维码的方式是在一个独立的H5页面展示二维码,如下,独占了一个H5页面
如果想要把二维码嵌入到页面的demo中请参照这个官方文档
路由重定向后参数的接收
当我们获取到二维码后,进行扫码登录。
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数
redirect_uri?code=CODE&state=STATE
此时我们就可以在后台进行参数的获取了(注意重定向url时为get请求,因此后台请使用get方式接收)。
若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数
redirect_uri?state=STATE
后台判断逻辑分为三步:
2、请求企业维信接口根据Access_token和code获取得到userid
3、根据userid查询数据库做登录判断逻辑。
代码逻辑如下:
注意,红色框内的为登录逻辑判断,大家根据自己系统的登录逻辑进行具体实现即可
主提逻辑代码(注意用get方式接收):
getAccessToken()方法
获取得到accessToken
getWechatUserId(code, accessToken)
获取得到userid
以上代码总共有两个地方需要额外依赖,一个是HTTP请求,一个是String转化为Map。如果大家有自己的实现方式可以自己实现,如果参照我的需要添加如下依赖
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.6.6</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency>
写在最后
自己做的时候发现很多博客都是把官方文档复制了一遍,具体实现细节也没说清楚,也没有什么参照的代码,对于我这种用复制粘贴写代码的程序员实在是不能接受,所以就把自己的开发过程记录一下,也可以方便下大家。大家如果有什么不懂的或者是我写的文档有遗漏的地方,欢迎随时沟通!