官网文档:https://developer.work.weixin.qq.com/document/path/91335
我根据上图画的便于理解的可实施图
步骤如下->
①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接
②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
③前端项目->windows.location.href跳转->企业微信授权链接
④企业微信->企业微信授权,携带code回调redirect_url->前端项目
⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
⑥后端api->服务端通过code调用->企业微信获取用户信息
⑦后端api->返回token及用户信息->前端项目
重点阅读,比较重要
核心思想:就是调用之前需要配置可信任域名+端口,下面会进行演示。
这个链接一般为了安全,由前端触发请求后端构造网页授权链接(回调redirect_uri)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
通过后端后取的ACCESS_TOKEN的前端传递过来的code,调用“获取访问用户身份”请求地址即可
127.0.0.1 apitest.tobdev.com
127.0.0.1 test.tobdev.com
登录管控台:https://work.weixin.qq.com/wework_admin/frame#apps
网页授权及JS-SDK
申请域名校验
建议使用PC端企业微信进行调试,手机调试也可以,如果是手机调试的话,请参考:
host配置及代理相关,H5应用如何本地及真机调试https://blog.csdn.net/weixin_40816738/article/details/122431390
选择企业内部自建应用
步骤如下->
①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接
②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
③前端项目->windows.location.href跳转->企业微信授权链接
④企业微信->企业微信授权,携带code回调redirect_url->前端项目
⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
这里给大家进行步骤拆解:
⑥后端api->服务端通过code调用->企业微信获取用户信息
⑦后端api->返回token及用户信息->前端项目
步骤如下->
①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接
【H5应用OAuth授权登录】按钮
地址编码处理,官网文档有讲到
请求后端api
②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
service组装网页授权连接
③前端项目->windows.location.href跳转->企业微信授权链接
④企业微信->企业微信授权,携带code回调redirect_url->前端项目
⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
这里给大家进行步骤拆解:
⑥后端api->服务端通过code调用->企业微信获取用户信息
⑦后端api->返回token及用户信息->前端项目
用户信息
{
"errcode": 0,
"UserId": "ZeXin",
"DeviceId": "b4f2f8f9-6a51-4f1b-a927-2140b9253c17",
"errmsg": "ok",
"token": "tobdeveyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0b2JkZXYiLCJjb3JwX2lkIjoid3dlYTk4MjIwZmRjZDhhMzhkIiwiaWF0IjoxNjQ1OTMwMjYxLCJleHAiOjE2NDY1MzUwNjF9.NCfLR5fnYubuRnSDojXmV4BbTCVNw7Yu-IKZpywvhMQ"
}
后端:https://gitee.com/gblfy/qywx-inner-java
前端:https://gitee.com/gblfy/qywx-vuejs
//gitee.com/gblfy/qywx-vuejs)
文章浏览阅读631次,点赞18次,收藏16次。通过使用分组校验,你可以为同一个对象的不同操作设置不同的验证规则,这在复杂应用中非常有用。这种方法提高了代码的灵活性和可维护性。_spring-boot-starter-validation使用文档
文章浏览阅读5.5k次。https://blog.csdn.net/cjbct/article/details/62446380_word保存为高清晰的pdf
文章浏览阅读4k次,点赞3次,收藏13次。1,创建工作目录比如:/home/hadoop需要配置2个文件(data是挂载目录,会自动创建)2,hadoop.env内容不用改,基本是默认配置,后续修改配置在这修改就行了,配置详情自己百度下CORE_CONF_fs_defaultFS=hdfs://namenode:8020CORE_CONF_hadoop_http_staticuser_user=rootCORE_CONF_hadoop_proxyuser_hue_hosts=*CORE_CONF_hadoop_pro_bde2020/hadoop
文章浏览阅读4.2k次。打开src目录下的AppDelegate.cpp文件,若无修改则在第45行处找到全局声明的Size变量,修改`designResolutionSize`中的大小即可。_cocos2dx设置窗口大小
文章浏览阅读1.6k次。测试代码:@PostMapping() public void test(@RequestBody Student student){ System.out.println(student.getLover().name()); }class Student{ private Lover lover; public Lover getLover() { return lover; } public void setLover_springboot get请求怎么接收前端传递的枚举数字
文章浏览阅读1.5w次,点赞24次,收藏120次。简单来说就是去量纲后的回归(因为你要比较不同变量之间的显著性的大小,那么带着量纲怎么比,所以先把量纲去掉,然后再比较)官话:为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数。_stata两个虚拟变量的交互项
文章浏览阅读188次。文章目录一起学设计模式 - 一起开始设计模式的修炼之路1.为什么要学设计模式2.设计模式的六大原则2.1 单一职责原则(Single responsibility principle)2.2 开闭原则(Open Close Principle)2.3 里氏替换原则LSP(Liskov Substitution Principle)2.4 依赖倒转原则(Dependence Inversion Principle)2.5 接口隔离原则(Interface Segregation Principle)2.6 迪_一起来学习设计模式
文章浏览阅读183次。课前提问:• BRD的内容结构有哪些?• BRD的写作内容与汇报对象有什么关系?应该有哪些注意的地方?• 不同的汇报对象,他们都关心什么样的内容?• BRD的核心重点在哪里? 8.1 BRD文档写作的目的 • BRD文档的目的– 发现• 现有产品改进的可能• 一个创新产品– 需要• 要权重• 要项目• 要资..._好的brd文档应该具备哪些特征
文章浏览阅读4.4k次,点赞3次,收藏9次。集成学习(Ensemble Learning) 集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。这些算法可以是不同的算法,也可以是相同的算法。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。 ..._小型数据集联合学习
文章浏览阅读418次。标签PostgreSQL , 标签 , 推荐系统 , 实时圈人 , 数组 , gin , gist , 索引 , rum , tsvector , tsquery , 万亿 , user , tag , 淘宝背景我们仅用了PostgreSQL的两个小特性,却解决了业务困扰已久的大问题。推荐系统是广告营销平台的奶牛,其核心是精准、实时、..._实时圈人
文章浏览阅读430次。软件测试风险追踪表风险追踪表 项目名称: 填制人: 编号 风险描述 影响 风险等级 发生的可能性 应对策略 状态 责任人 备注 ..._软件测试风险管理表格
文章浏览阅读1.2k次。一、AAC音频格式种类有哪些AAC音频格式是一种由MPEG-4标准定义的有损音频压缩格式。AAC包含两种格式 ADIF(Audio Data Interchange Format音频数据交换格式)和ADTS(Audio Data transport Stream音频数据传输流)。ADIF特点:可以确定的找到音视频数据的开始,不需要进行在音视频数据流中间开始的解码,它的解码必须在明确的定义开始。应用场景:常用在磁盘文件中。ADTS特点:具有同步字的比特流,解码可以在这个流中任何位置开始。类似于mp_aac adts