企业微信API接口--网页授权登录(二)
企业微信OAuth2接入流程,来自官网的流程图:
-
首先要在企业微信的后台配置可信域名:
要求配置的可信域名,必须与访问链接的域名完全一致;若访问链接URL带了端口号,端口号也需要登记到可信域名中
-
前端构建网页授权链接:
- 链接地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
- appid参数:小程序、公众号等的唯一标识
- redirect_uri 参数:重定向的地址
-
后端逻辑第一步:获取企业微信的access_token
-
请求方式: GET(HTTPS)
-
请求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
-
接口参数:
参数 必须 说明 corpid 是 企业ID,获取方式参考:术语说明-corpid corpsecret 是 应用的凭证密钥,获取方式参考:术语说明-secret -
返回值:
{ "errcode": 0, "errmsg": "ok", "access_token": "accesstoken000001", "expires_in": 7200 }
-
-
后端逻辑第二步:获取访问用户身份
-
请求方式:GET(HTTPS)
-
请求地址:https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
-
参数说明:
参数 必须 说明 access_token 是 调用接口凭证 code 是 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
-
-
前端构建网页授权链接 踩坑的地方:前端访问这个网址,出现跨域问题。解决方式是:
- 重定向的地址写成前端的空白页(www.xxxx.com)
- 当触发链接后,校验appid和redirect_uri 合法后,微信客户端会重定向重定向到空白页(www.xxxx.com?code=xxxxxx)
- 在次空白页面写一个js事件,把code作为参数调用开发者的服务后台
- 这样就可以避开前端跨域问题