企业微信网页授权登录

1,643 阅读1分钟

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 快乐代码