企业微信服务商扫码登录

准备步骤

  1. 申请注册企业微信;
  2. 企业注册后,需要申请微信服务商 企业微信服务商官网
    PS:上述不是本章的主要内容,不做过多详解
  3. 进入服务商后台 应用管理–> 登录授权–>设置登录授权发起域名和授权完成回调域名,如果需要使用通讯录权限,需要这个文件放到域名对应的服务器下,如果是boot项目存放到/resources/static文件夹下即可。
    在这里插入图片描述
    在这里插入图片描述

开发内容

新建一个页面内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>扫码登录授权页</title>
<body>
<div id="code" ></div>
<!--用于测试我就填了两个参数-->
<a href="https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=CORPID&redirect_uri=REDIRECT_URI">
<img src="//wwcdn.weixin.qq.com/node/wwopen/wwopenmng/style/images/independent/brand/300x40_blue$cecbbc4e.png" srcset="//wwcdn.weixin.qq.com/node/wwopen/wwopenmng/style/images/independent/brand/300x40_blue_2x$c22687e4.png 2x" alt="企业微信登录"></a>
</body>
</html>

参数说明

参数必须说明
appid服务商的CorpID
redirect_uri授权登录之后目的跳转网址,需要做urlencode处理。所在域名需要与授权完成回调域名一致
state用于企业或服务商自行校验session,防止跨域攻击
usertype支持登录的类型。admin代表管理员登录(使用微信扫码),member代表成员登录(使用企业微信扫码),默认为admin

这样即可产生想要的二维码在这里插入图片描述
扫码结束后,跳转的链接后,通过解析URL可获得一个code,通过code即可进行下一步的操作。附上通过简单的ajax请求,通过code获取登录信息。

    <script>
        $(function(){
            var code = GetUrlParam("auth_code");
            $.ajax({
                url:'../getUser',
                dataType:'json',
                type:'get',
                async:'false',
                data:{code:code},
            success:function(data){
                $("#userName").text(data.user_info.name);
                $("#userId").text(data.user_info.userid);
                $("#corpId").text(data.corp_info.corpid);
                $("#avatar").attr('src',data.user_info.avatar);
             }
        });
        })

        function GetUrlParam(paraName) {
            var url = document.location.toString();
            var arrObj = url.split("?");
            if (arrObj.length > 1) {
                var arrPara = arrObj[1].split("&");
                var arr;
                for (var i = 0; i < arrPara.length; i++) {
                    arr = arrPara[i].split("=");
                    if (arr != null && arr[0] == paraName) {
                        return arr[1];
                    }
                }
                return "";
            }
            else {
                return "";
            }
        }
    </script>

后端Controller代码:

    @ResponseBody
    @RequestMapping("/getUser")
    public String login(@RequestParam(value = "code")String code){
        String providerToken = tokenCommon.getProviderToken();
        WxResponseDTO loginInfo = userCommon.getLoginInfo(code, providerToken);
        //将对象封装成JSON返回页面
        String rsp = JSONObject.toJSONString(loginInfo);
        return rsp;
    }

至此就能成功拿到登录者信息。
在这里插入图片描述

PS:博客做为自己工作的一个记录,也希望帮助也需要的人。第一次写,如有不足,敬请谅解!有不解也可留言哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值