获取 Auth_code,实现免登授权
使用场景说明
业务侧需要获取用户信息时,可通过该方法获取用户的 open_id。
调用方式如下:
按照方式二,尝试通过 JS-SDK 获取 auth_code;若成功则通过该 auth_code 换取用户 access_token 并调用 API;若失败,则通过方式一获取用户授权;此处不推荐每次打开应用都走方式一和方式二,用户会反复授权,体验不佳。
方式一:通过授权链接获取 Auth_code
要申请用户授权码,须在腾讯会议的 OAuth2.0 授权页完成,在该页面上腾讯会议用户可以接受或拒绝应用程序的授权申请。
构造要跳转的链接
构造如下跳转链接,此链接处理成功后,会重定向跳转到指定的 redirect_uri,并向 url 追加临时授权码 auth_code 及 state 两个参数,具体调用方法请参见 第三方应用鉴权(OAuth2.0)。
跳转链接示例:
https://meeting.tencent.com/marketplace/authorize.html?corp_id= xxxxxx&sdk_id= xxxxxx&redirect_uri= xxxxxx&state= xxxxxx
跳转到腾讯会议授权页面,授权成功后会重定向跳转到指定的 redirectURL,并向 url 追加临时授权码 auth_code 及 state 两个参数。
企业账户进行第一次授权时,会向该企业的管理员申请应用使用权限,需要管理员审批通过后才能授权。
方式二:JS-SDK 获取 Auth_code
接口描述
描述:调用 permission.requestAgentAuthCode,实现第三方应用获取免登授权码。
支持的版本:2.17.0
是否需要鉴权:否
参数说明
授权请求入参(param:RequestAuthCodeParam):
参数名称 | 参数类型 | 参数描述 |
sdkId | String | 应用 ID |
返回 Promise<void>。
示例
wemeet.permission.requestAgentAuthCode({sdkId: "xxxxxx",}).then((resp) => {const code = resp.authCode;}).catch((err) => {//});
注意:
授权码需要发送给后台,通过临时授权码 auth_code 获取 access_token,临时授权码只能使用一次,有效期为5min。
每次换取的 access_token 和 refresh_token 都需要被存取并替换已有的 tokens,旧的 token 将在新的 token 获取之后失效,开发者应在实现逻辑上避免出现同时使用两个 token 的情况,例如多个任务各自获取 token 导致先申请的 token 失效而出现报错。
当前页面跳转到授权页
描述:调用 permission.requestAuth,应用自动跳转到授权页,实现发起授权。
支持的版本:2.17.0
是否需要鉴权:否
参数说明
授权请求入参(param:RequestAuthCodeParam):
参数名称 | 参数类型 | 参数描述 |
corpId | String | 应用企业 ID |
redirectURI | String | redirectURI |
sdkId | String | 应用 ID |
state | Undefined、String | 重定向后会带上 state 参数,开发者可以填 写 a-zA-Z0-9 的参数值,最多128字节 |
Optional | Undefined、String | customAuthPage |
返回 <void>。
示例
wemeet.permission.requestAuth({corpId: "xxxxxx",sdkId: "xxxxxx",redirectURI: "https://xxxxxx",state: "xxx",});