参考文献

  • 扫码授权登陆

配置企业微信应用设置

1.设置可信域名

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

2.设置授权回调域

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

❗️该回调域名提前解析到服务器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参数

  • 回调业务按需处理

企业微信之——扫码登录相关推荐

  1. 微信或企业微信实现扫码登录的三种方式

    通过微信或企业微信扫码登录PC管理后台,替代传统的账号.密码登录. 为了完成这个功能,疯狂百度各种扫码登录的技术文章,能实现微信或企业微信扫码登录的方式可以说有三种: 1.注册一个微信资源开放平台账号 ...

  2. 企业微信实现扫码登录

    一:获取扫码登陆所需的参数:appid,secret,agentid 登录企业微信:https://work.weixin.qq.com/ 扫码登录文档:https://work.weixin.qq. ...

  3. 企业微信服务商扫码登录

    准备步骤 申请注册企业微信: 企业注册后,需要申请微信服务商 企业微信服务商官网: PS:上述不是本章的主要内容,不做过多详解 进入服务商后台 应用管理–> 登录授权–>设置登录授权发起域 ...

  4. pc端集成企业微信的扫码登录及遇到的问题

    集成步骤: 1.在企业微信后台中添加应用 2.记录下应用的相关信息,在后文要用到 3.引入企业微信js 旧版:http://rescdn.qqmail.com/node/ww/wwopenmng/js ...

  5. 企业微信第三方扫码登录

    为什么写这个文章 公司后台突然需要扫码登录,网上的企业微信扫码都是基于自建应用的扫码登录,对第三方的扫码并没有多加介绍 概述 企业微信的管理员和成员,可通过单点登录机制,登录到第三方网站.第三方可通过 ...

  6. 企业微信+esaywechat 扫码授权登录

    企业微信+esaywechat 扫码授权登录 相关 相关 这里用的是 Yii2 框架. 安装easywechat: composer require overtrue/wechat:~4.0 -vvv ...

  7. CAS在windows AD下实现企业微信自动扫码登陆的总结

    基础名词 CAS(Central Authentication Service),可以看作中心授权服务器 SSO(Single Sign On),单点登录 SSO相关知识 同域SSO(blog.212 ...

  8. 淘宝和微信的扫码登录实现原理

    目录 基本技术原理 扫码登录功能到底是什么样的? 扫码登录功能的完整技术逻辑 1)网页端与服务器的配合逻辑: 2)手机端与服务器的配合逻辑: 3)登录成功时的逻辑: 4)详细的技术原理总结如下图所示: ...

  9. 微信网页扫码登录与微信公众号授权登录的区别

    最近着手开发了微信网页扫码登录和公众号授权登录收获颇丰,两者的开发很类似.以下是我个人摸索过程中发现的两者的异同: 两者都可以通过微信客户端扫码授权的方式,让第三方页面获得微信用户的一些基本信息(昵称 ...

最新文章

  1. golang 映射 map 简介
  2. Java IO: Buffered和Data
  3. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率
  4. excel 复制数据 sql server 粘贴_数据资料复制粘贴麻烦?教你硬盘对拷资料
  5. 香帅的北大金融学课笔记2 -- 银行
  6. 关于 app测试工具
  7. sklearn自学指南(part41)--使用手册的目录
  8. 『设计模式』JAVA I/O 与装饰者模式UML图
  9. 允许服务与桌面交互_vivo 正式推出 Origin OS,融合自然设计与全新交互
  10. 简单的C语言开源软件,自己写的一个简单的数据库...完整开源...
  11. 学会爱,也学会批处理
  12. 公式推导 11-14
  13. iOS:Tagged Pointer
  14. 深入理解Nginx——链接
  15. 全国计算机等级考试二级C语言程序设计考点整理
  16. 怎么把电脑上的python软件卸载干净_怎么把一个软件卸载干净_把一个软件卸载干净的两种方法-系统城...
  17. 运维流程管理:保障运维管理效能的推手
  18. requestLayout() improperly called by
  19. chapter5. Java数据结构与java算法
  20. 一个好的浏览器是多么重要,强烈推荐一个好用的浏览器.........

热门文章

  1. Java实现第九届蓝桥杯快速排序
  2. Objective-C(八、正式协议Protocol,非正式协议informal protocol)——iOS开发基础
  3. Android Studio项目打包:3、Android Studio生成的apk究竟在哪里?(非正式打包)
  4. 【论文笔记】Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers
  5. Diva无法运行LVS问题(virtuoso,layout)
  6. Unity打包ARCore程序踩过的坑
  7. 使用python turtle库绘制一个三角形_使用turtle库绘制一个叠加等边三角形,图形效果如下:...
  8. Java中Collections类概述和使用
  9. 学生环境网页设计模板下载 保护环境大学生HTML网页制作作品 简单环境网页设计成品 dreamweaver学生网站模板
  10. gataway 组件的健权、限流、过滤等功能分析(三十一)