企业微信web登录实现流程
通过企业微信提供的登录能力,可以让企业的网站在浏览器内打开时,引导成员使用企业微信登录授权,从而获取成员的身份信息。
在进行企业微信授权登录之前,需要先在企业的管理端后台创建一个具备“企业微信授权登录”能力的应用
联系微信:llike620
我的网站:gofly.v1kf.com
登录方式
新版企业微信登录,除了支持使用移动端企业微信扫码登录之外,还支持通过企业微信桌面端进行快速登录。
新版企业微信登录是对旧版扫码登录的能力升级,建议开发者升级接入,获得更好的登录体验。
企业微信登录流程
开启网页授权登录
登录 企业管理端后台->进入需要开启的自建应用->点击 “企业微信授权登录”,进入如下页面
然后点击 "设置授权回调域",输入回调域名,点击“保存”。
要求配置的授权回调域,必须与访问链接的域名完全一致。举个例子:
- 假定重定向访问的链接是:http://mail.qq.com:8080/cgi-bin/login:
| 配置域名 | 是否正确 | 原因 |
| mail.qq.com:8080 | 配置域名与访问域名完全一致 | |
| email.qq.com | 配置域名必须与访问域名完全一致 | |
| support.mail.qq.com | 配置域名必须与访问域名完全一致 | |
| *.qq.com | 不支持泛域名设置 | |
| mail.qq.com | 配置域名必须与访问域名完全一致,包括端口号 | |
| http://mail.qq.com:8080 | 不包括协议头 |
构造企业微信登录链接
同时支持通过构造链接的方式,在新窗口中打开企业微信登录页面,用户使用企业微信登录授权后通过将携带
auth code 跳转至指定的 redirect_uri 。链接格式
开发者需要构造如下的链接来获取
code 参数https://login.work.weixin.qq.com/wwlogin/sso/login?login_type=LOGIN_TYPE&appid=APPID&redirect_uri=REDIRECT_URI&state=STATE
参数说明
| 参数名 | 类型 | 必填 | 说明 |
| login_type | string | 是 | 登录类型。 ServiceApp:服务商登录;CorpApp:企业自建/代开发应用登录。 |
| appid | string | 是 | 登录类型为企业自建应用/服务商代开发应用时填企业 CorpID,第三方登录时填登录授权 SuiteID |
| agentid | string | 否 | 企业自建应用/服务商代开发应用 AgentID,当login_type=CorpApp时填写 |
| redirect_uri | string | 是 | 登录成功重定向 url,需进行 URLEncode 注意域名必须配置为可信域名,详见下文的“redirect_uri域名说明” |
| state | string | 否 | 登录 state 用于保持请求和回调的状态,授权请求后原样带回给企业。该参数可用于防止CSRF 攻击(跨站请求伪造攻击),建议带上该参数,可设置为简单的随机数加 session 进行校验 需进行 URLEncode |
| lang | string | 否 | 语言类型。zh:中文;en:英文。 |
redirect_uri域名说明
redirect_uri的域名必须配置为可信域名,不同应用类型的配置方法不同,具体如下
| 应用类型 | 域名配置方法 |
| 自建应用 | OAuth可信域名或者Web网页授权回调域名 |
| 代开发应用 | OAuth可信域名或者Web网页授权回调域名 |
| 第三方应用 | “登录授权”的可信域名 |
返回说明
用户允许授权后,将会重定向到
redirect_uri 的网址上,并且带上 code 和 state 参数redirect_uri?code=CODE&state=STATE
企业CorpID:WWCorpId
开启授权登录的应用ID:1000000
登录跳转链接:http://work.weixin.qq.com
state设置为:WWLogin
需要配置应用授权回调域名为:work.weixin.qq.com
根据URL规范,将上述参数分别进行UrlEncode,得到拼接的登录链接为:
https://login.work.weixin.qq.com/wwlogin/sso/login?login_type=CorpApp&appid=WWCorpId&agentid=1000000&redirect_uri=http%3A%2F%2Fwork.weixin.qq.com&state=WWLogin
获取用户登录身份
该接口可使用用户登录成功颁发的
code来获取成员信息,适用于自建应用与代开发应用请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE 参数说明:
| 参数 | 必须 | 说明 |
| access_token | 是 | 调用接口凭证 |
| code | 是 | 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。 |
权限说明: 跳转的域名须完全匹配access_token对应应用的可信域名,否则会返回50001错误。 返回结果: a) 当用户为企业成员时(无论是否在应用可见范围之内)返回示例如下:
{ "errcode": 0, "errmsg": "ok", "userid":"USERID"}
| 参数 | 说明 |
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| userid | 成员UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员。 |
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网
浙公网安备 33010602011771号