1. 前言
在当下企业办公环境下,越来越多的企业采用了微信作为内部沟通的工具。而企业微信则是一款专门为企业内部打造的微信应用开发平台,它不仅拥有微信的交互体验和生态优势,而且还能够提供更加强大的企业级应用开发能力。在此背景下,企业微信登录系统也得到了广泛的应用。
2. 企业微信登录流程
企业微信登录包含三个步骤:企业获取Authorization Code、企业获取访问用户信息的Access Token和企业通过Access Token获取用户信息。
2.1 企业获取Authorization Code
企业在调用企业微信登录接口时,需要引导用户进入企业微信登录页进行授权。企业微信登录页会自动跳转到企业自定义的授权页面,并携带一个code参数。企业在收到code参数后,就可以凭此code参数向企业微信服务器请求Access Token了。
调用企业微信授权登录接口的方法如下:
location.href = "https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=企业的CorpID&redirect_uri=授权回调地址&state=123";
说明:
appid:企业的CorpID,可以在企业微信管理端获取。
redirect_uri:回调地址,可以在企业自己的网站上做相应的处理。
state:自定义参数,可以携带一些数据,最终会原样返回企业。
2.2 企业获取访问用户信息的Access Token
企业在收到code参数后,需要利用这个code参数去请求Access Token。Access Token是访问用户信息的令牌。企业在获取到Access Token之后,可以使用这个令牌去获取用户信息。
获取企业微信Access Token的方法如下:
const axios = require('axios');
axios.get('https://qyapi.weixin.qq.com/cgi-bin/gettoken', {
params: {
corpid: '企业的CorpID',
corpsecret: '管理组的凭证密钥',
}
}).then((response) => {
const access_token = response.data.access_token;
console.log(access_token);
}).catch((error) => {
console.error(error);
});
说明:
corpid:企业的唯一标识,可以在企业微信管理端获取。
corpsecret:管理组的凭证密钥,可以在企业微信管理端获取。
2.3 企业通过Access Token获取用户信息
获取Access Token之后,企业就可以调用企业微信提供的接口去获取用户的基本信息。
获取用户信息的方法如下:
const axios = require('axios');
axios.get('https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo', {
params: {
access_token: 'Access Token',
code: '企业微信返回的code参数',
},
}).then((response) => {
const userid = response.data.UserId;
console.log('userid:', userid);
}).catch((error) => {
console.log(error);
});
3. 获取用户信息有哪些参数
企业微信提供的接口可以获取的用户信息如下:
参数 | 说明 |
---|---|
UserId | 成员UserID。对应管理端的帐号,企业内必须唯一。 |
DeviceId | 手机设备号(由微信在安装时随机生成)。 |
4. 其他常用接口
4.1 通过UserID获取成员信息
调用该接口可以根据用户UserID来获取企业成员的详细信息。
调用方法如下:
const axios = require('axios');
const access_token = 'Access Token';
const userid = '用户的UserID';
axios.get('https://qyapi.weixin.qq.com/cgi-bin/user/get', {
params: {
access_token,
userid,
},
}).then((response) => {
console.log(response.data);
}).catch((error) => {
console.log(error);
});
4.2 获取应用的jsapi_ticket
企业可以通过调用该接口来获取应用的jsapi_ticket。
调用方法如下:
const axios = require('axios');
const access_token = 'Access Token';
axios.get('https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket', {
params: {
access_token,
},
}).then((response) => {
console.log(response.data);
}).catch((error) => {
console.log(error);
});
5. 总结
通过以上的介绍,我们可以清晰地了解到企业微信登录流程的具体实现方案,这将为企业内部应用的开发提供有力的技术支持。