1.网页授权登录介绍
企业微信API网址:work.weixin.qq.com/api/doc/900…
企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。
OAuth授权不懂的可以看看阮一峰老师写的OAuth介绍:www.ruanyifeng.com/blog/2019/0…
2.配置可信域名
要求配置的可信域名,必须与访问链接的域名完全一致;若访问链接URL带了端口号,端口号也需要登记到可信域名中。
域名必须是HTTPS,重定向地址就是https
3.构造链接
构造链接就是获取code的跳转链接;
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:企业id, redirect_uri:授权后重定向的回调链接地址(必须进行urlencode转码处理), response_type:返回类型code, scope:应用授权作用域。 权限限制在企业微信, state:重定向后会带上state参数, #wechat_redirect: 终端使用此参数判断是否需要带上身份信息,
根据URL规范,将上述参数分别进行UrlEncode,得到拼接的OAuth2链接为:
1. `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxCorpId&redirect_uri=http%3a%2f%2fapi.3dept.com%2fcgi-bin%2fquery%3faction%3dget&response_type=code&scope=snsapi_base&state=#wechat_redirect`
4.构造链接跳转
员工点击后,页面将跳转至
http://api.3dept.com/cgi-bin/query?action=get&code=AAAAAAgG333qs9EdaPbCAP1VaOrjuNkiAZHTWgaWsZQ&state=
5.案例代码
if (!this.$route.query.code&&this.$route.query.appid) {
let hosUrl = window.location.host; // 动态抓取域名,避免跟换域名时修改代码
var str = encodeURIComponent(`https://${hosUrl}/#/`); //urlencode转码API
let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.$route.query.appid}&redirect_uri=${str}&response_type=code&scope=snsapi_base&state=1&#echat_redirect`;
console.log(url);
} else {
let code = this.$utils.getUrlKey("code"); //获取url参数方法
let state = this.$utils.getUrlKey("state"); //获取url参数方法
if (code) {
this.moduleManageSelectByWeChatFn(code, state);
} else {
this.$toast.fail("用户信息获取失败,请重新进入页面!");
}
}
END 快乐代码