目录
@wecom/jssdk 初始化企业微信登录组件企业微信支持开发者使用以下方式来进行Web登录
Webview(桌面端&移动端)
@wecom/jssdk 初始化企业微信登录组件为了满足网站定制化的需求,我们支持将企业微信登录组件内嵌到开发者的网站中。用户使用企业微信登录授权后,登录组件将 auth code 返回给网站。
企业微信登录组件主要用途:网站希望用户在网站内就能完成登录,无需跳转到企业微信域下登录后再返回,提升登录的流畅性与成功率。
使用企业微信 JS-SDK:@wecom/jssdk >=1.3.1
同时支持通过构造链接的方式,在新窗口中打开企业微信登录页面,用户使用企业微信登录授权后通过将携带 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
示例1:自建应用
企业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
示例2:代开发应用
企业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
示例3:服务商
登录授权SuiteId:SuiteID
登录跳转链接:http://work.weixin.qq.com
state设置为:WWLogin
需要配置登录授权回调域为:work.weixin.qq.com
根据URL规范,将上述参数分别进行UrlEncode,得到拼接的登录链接为:
https://login.work.weixin.qq.com/wwlogin/sso/login?login_type=ServiceApp&appid=WWCorpId&redirect_uri=http%3A%2F%2Fwork.weixin.qq.com&state=WWLogin
Win & Mac)版本大于 3.1.23,运行并登录企业微信@wecom/jssdk 初始化企业微信登录组件时,开发者网页域名需使用 HTTPS 协议login_type=CorpApp),当前企业微信桌面端登录用户,在所登录应用的可见范围内Webview 进行登录,请使用OAuth授权登录
onCheckWeComLogin 回调中的isWeComLogin参数,判断企业微信的桌面端登录状态。Agentid 所指应用的可见范围,扫码时会提示无权限。panel_size 参数定义登录组件面板大小redirect_type=callback时,需检查业务页面域名与redirect_uri域名的一致性@wecom/jssdk 升级至 >=2.3.2 版本,用户可正常使用快速登录能力。
1. 登录相关错误码
登录组件将用户在登录成功前遇到的错误通过 onLoginFail 函数回调,便于开发者排查问题。
| 错误码 | 释义 |
|---|---|
| -31020 | redirect_uri 与配置的登录授权调域名不一致 |
| -31027 | appid 参数错误 |
| -31028 | agentid 参数错误 |
| -31033 | 校验请求来源错误 |
| -31034 | 该企业不是服务商 |
| -31035 | redirect_uri 不能为空 |
| -31037 | appid 非登录授权应用 |
| -31039 | redirect_uri 与配置的可信域名不一致 |
| -31040 | login_type 参数错误 |
2. 企业微信登录组件UI规范
默认情况下,登录组件的宽高为480x416px
可通过panel_size字段指定为更小的面板 320x380px
注:建议使用“旧版扫码登录”的开发者按该文档切换为新的方式,该方式后续将支持更多功能
