企业微信之——扫码登录

参考文献

配置企业微信应用设置

1.设置可信域名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmscW2g0-1663410315300)(http://cdn.liancode.top/img/设置可信域名1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y18chiFV-1663410315301)(http://cdn.liancode.top/img/设置可信域名2.png)]

❗️可信域名必须与企业主体相同或相关联

2.设置授权回调域

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcoFAixl-1663410315301)(http://cdn.liancode.top/img/企业微信授权登录.png)]

❗️授权回调域必须与可信域名一直,如果有设置端口,则端口也要配置一直,详情看开发文档。

❗️该回调域名提前解析到服务器ip地址

3.将ip地址添加到白名单

OAuth2

1.构造授权链接

String encodeUrl = URLEncoder.encode(props.getOauth2CallbackUrl(), StandardCharsets.UTF_8);
String url = "https://open.work.weixin.qq.com/wwopen/sso/qrConnect?" +
            "appid=" + props.getCorpid() +
            "&agentid=" + props.getAgentid() +
            "&redirect_uri=" + encodeUrl +
            "&state=" + subject.getUserId();

参数说明

参数必须说明
appid企业微信的CorpID,在企业微信管理端查看
agentid授权方的网页应用ID,在具体的网页应用中查看
c重定向地址,需要进行UrlEncode
state用于保持请求和回调的状态,授权请求后原样带回给企业。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议企业带上该参数,可设置为简单的随机数加session进行校验
lang自定义语言,支持zh、en;lang为空则从Headers读取Accept-Language,默认值为zh

若用户不在agentid所指应用的可见范围,扫码时会提示无权限。

假定当前

企业CorpID:wxCorpId

开启授权登录的应用ID:1000000

登录跳转链接:http://api.3dept.com

state设置为:weblogin@gyoss9

需要配置的授权回调域为:api.3dept.com

根据URL规范,将上述参数分别进行UrlEncode,得到拼接的OAuth2链接为:

https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=wxCorpId&agentid=1000000&redirect_uri=http%3A%2F%2Fapi.3dept.com&state=web_login%40gyoss9

2.授权成功后回调

  • 成功:重定向到redirect_uri会携带code和state参数

    redirect_uri?code=CODE&state=STATE
    
  • 失败:重定向到redirect_uri,但不会携带code,仅有state参数

  • 回调业务按需处理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序的扫一扫功能可以通过调用wx.scanCode()方法来实现。在代码中,可以使用<button>标签来创建一个扫一扫的按钮,并通过bindtap属性绑定一个getScancode方法。在getScancode方法中,可以调用wx.scanCode()方法来实现扫码功能,并在成功后将扫描结果保存在SampleBarcode变量中。\[1\] 另外,也可以在Page对象中定义一个scanCodeEvent方法来实现扫码功能。在该方法中,可以调用wx.scanCode()方法,并通过设置onlyFromCamera属性为true来限制只能从相机扫码。成功后,可以通过res.result获取扫描结果,并进行后续逻辑处理。\[2\] 除了以上两种方法,还可以使用wx.scanQRCode()方法来实现扫一扫功能。在代码中,可以通过调用wx.scanQRCode()方法来实现扫码功能,并通过设置needResult属性为1来直接返回扫描结果。可以通过设置scanType属性来指定扫描的类型,如二维码或条形码。成功后,可以通过res.result获取扫描结果。\[3\] 总结起来,微信小程序的扫一扫功能可以通过调用wx.scanCode()或wx.scanQRCode()方法来实现,具体的实现方式可以根据需求选择适合的方法。 #### 引用[.reference_title] - *1* [微信小程序(扫一扫功能)](https://blog.csdn.net/QQ675396947/article/details/127487010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [微信小程序——扫码功能简单实现](https://blog.csdn.net/qq_29528701/article/details/117391740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序接入web-view实现扫一扫功能](https://blog.csdn.net/g_blue_wind/article/details/120541342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值