企业微信H5_身份验证,H5应用网页授权登录获取身份

文章目录

          • 一、调用流程
            • 1. 企业微信OAuth2接入流程
            • 2. 使用OAuth2前须知
            • 3. 构造网页授权链接
            • 4. 获取访问用户身份
          • 二、调试前准备
            • 2.1. 配置域名映射
            • 2.2. 跨域+域名请求
            • 2.3. 设置可信任域名
            • 2.4. 登录企微
            • 2.5. 选择自建应用
          • 三、实战演练
            • 3.1. 前端编码触发后端api
            • 3.2. 后端构造授权链接
            • 3.3. 请求授权链接
            • 3.4. 回调前端
            • 3.5. 携带code请求后端
            • 3.6. 请求企业微信,获取用户信息
          • 四、代码讲解
            • 4.1. 前端编码触发后端api
            • 4.2. 后端构造授权链接
            • 4.3. 请求授权链接
            • 4.4. 回调前端
            • 4.5. 携带code请求后端
            • 4.6. 请求企业微信,获取用户信息
          • 五、源码分享
            • 5.1. 后端源码
            • 5.2. 前端源码

一、调用流程

官网文档:https://developer.work.weixin.qq.com/document/path/91335

1. 企业微信OAuth2接入流程

在这里插入图片描述
我根据上图画的便于理解的可实施图
在这里插入图片描述

步骤如下->
①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接
②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
③前端项目->windows.location.href跳转->企业微信授权链接
④企业微信->企业微信授权,携带code回调redirect_url->前端项目
⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
⑥后端api->服务端通过code调用->企业微信获取用户信息
⑦后端api->返回token及用户信息->前端项目

2. 使用OAuth2前须知

重点阅读,比较重要
核心思想:就是调用之前需要配置可信任域名+端口,下面会进行演示。
在这里插入图片描述

3. 构造网页授权链接

这个链接一般为了安全,由前端触发请求后端构造网页授权链接(回调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

在这里插入图片描述

  • 参数说明
    appid的取值和redirect_uri授权后重定向的回调链接地址,请使用urlencode对链接进行处理,这个比较重要
    在这里插入图片描述
4. 获取访问用户身份

通过后端后取的ACCESS_TOKEN的前端传递过来的code,调用“获取访问用户身份”请求地址即可
在这里插入图片描述

二、调试前准备
2.1. 配置域名映射
127.0.0.1 apitest.tobdev.com
127.0.0.1 test.tobdev.com

在这里插入图片描述

2.2. 跨域+域名请求

在这里插入图片描述

2.3. 设置可信任域名

登录管控台:https://work.weixin.qq.com/wework_admin/frame#apps
在这里插入图片描述
网页授权及JS-SDK
申请域名校验
在这里插入图片描述
在这里插入图片描述

2.4. 登录企微

建议使用PC端企业微信进行调试,手机调试也可以,如果是手机调试的话,请参考:
host配置及代理相关,H5应用如何本地及真机调试https://blog.csdn.net/weixin_40816738/article/details/122431390

2.5. 选择自建应用

选择企业内部自建应用
在这里插入图片描述

三、实战演练

步骤如下->

3.1. 前端编码触发后端api

①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接

在这里插入图片描述

3.2. 后端构造授权链接

②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
在这里插入图片描述

3.3. 请求授权链接

③前端项目->windows.location.href跳转->企业微信授权链接
在这里插入图片描述

3.4. 回调前端

④企业微信->企业微信授权,携带code回调redirect_url->前端项目
在这里插入图片描述

3.5. 携带code请求后端

⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
在这里插入图片描述

3.6. 请求企业微信,获取用户信息

这里给大家进行步骤拆解:
⑥后端api->服务端通过code调用->企业微信获取用户信息

  • 后端接收前端的code
    在这里插入图片描述
  • 后端携带corpId请求企业微信获取access_token

⑦后端api->返回token及用户信息->前端项目
在这里插入图片描述

  • 后端获取token其实需要2个参数(AccessTokenUrl(),corpId,agentSecret)这一步通过查询数据库的信息,最后拼接而成的
    在这里插入图片描述
  • 后端构造“获取访问用户身份”请求地址,调用企业微信即可
    在这里插入图片描述
  • 后端接收企业微信返回的用户信息,这里只是简要的用户信息,最重要的是userid,等会会携带userid获取用户的详细信息(后续会讲)
    在这里插入图片描述
  • 前端接收后端推送过来的用户信息进行展示
    在这里插入图片描述
四、代码讲解

步骤如下->

4.1. 前端编码触发后端api

①前端项目->前端项目检查自身是否登录,如果没有登录携带redirect_url调用->后端api获取企业微信授权登录链接

在这里插入图片描述
【H5应用OAuth授权登录】按钮
在这里插入图片描述
地址编码处理,官网文档有讲到
在这里插入图片描述
请求后端api
在这里插入图片描述
在这里插入图片描述

4.2. 后端构造授权链接

②后端api->返回生成redirect_ur及app_id等信息的企业微信oauth授权链接->前端项目
在这里插入图片描述
service组装网页授权连接
在这里插入图片描述

4.3. 请求授权链接

③前端项目->windows.location.href跳转->企业微信授权链接
在这里插入图片描述
在这里插入图片描述

4.4. 回调前端

④企业微信->企业微信授权,携带code回调redirect_url->前端项目
在这里插入图片描述
在这里插入图片描述

4.5. 携带code请求后端

⑤前端项目->携带将state、code等调用->后端api接口获取用户信息等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6. 请求企业微信,获取用户信息

这里给大家进行步骤拆解:
⑥后端api->服务端通过code调用->企业微信获取用户信息

  • 后端接收前端的code
    在这里插入图片描述
  • 后端携带corpId请求企业微信获取access_token

⑦后端api->返回token及用户信息->前端项目
在这里插入图片描述

  • 后端获取token其实需要2个参数(AccessTokenUrl(),corpId,agentSecret)这一步通过查询数据库的信息,最后拼接而成的
    在这里插入图片描述
  • 后端构造“获取访问用户身份”请求地址,调用企业微信即可
    在这里插入图片描述
  • 后端接收企业微信返回的用户信息,这里只是简要的用户信息,最重要的是userid,等会会携带userid获取用户的详细信息(后续会讲)
    在这里插入图片描述
  • 前端接收后端推送过来的用户信息进行展示

在这里插入图片描述
用户信息

{
"errcode": 0,
"UserId": "ZeXin",
"DeviceId": "b4f2f8f9-6a51-4f1b-a927-2140b9253c17",
"errmsg": "ok",
"token": "tobdeveyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0b2JkZXYiLCJjb3JwX2lkIjoid3dlYTk4MjIwZmRjZDhhMzhkIiwiaWF0IjoxNjQ1OTMwMjYxLCJleHAiOjE2NDY1MzUwNjF9.NCfLR5fnYubuRnSDojXmV4BbTCVNw7Yu-IKZpywvhMQ"
}

在这里插入图片描述

在这里插入图片描述

五、源码分享
5.1. 后端源码

后端:https://gitee.com/gblfy/qywx-inner-java
在这里插入图片描述

5.2. 前端源码

前端:https://gitee.com/gblfy/qywx-vuejs
在这里插入图片描述//gitee.com/gblfy/qywx-vuejs)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Istio 网关之南北向流量管理

作者 | 王夕宁 阿里巴巴高级技术专家 参与阿里巴巴云原生公众号文末留言互动,有机会获得赠书福利! 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书,文章介绍将集群外部的客户端连接到集群内运行的服务&…

想在边缘运行计算机视觉程序?先来迎接挑战!

作者 | alwaysAI翻译 | 火火酱~,责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国人工智能可以让计算机聪明地行动,并且在真实环境中快速做出决策,同时收获相对理想的效果。当然,这个概括性的定义较为宽泛和模糊&#xf…

企业微信_通讯录管理,获取部门列表部门成员及详情

企业微信H5_通讯录管理,获取部门列表部门成员及详情 文章目录一、POSTMAN调试1. 获取access_token2. 获取部门列表3. 获取部门成员4. 获取部门成员详情5. 获取成员详情二、实战演练2.1. 获取部门列表2.2. 获取部门成员2.3. 获取部门成员详情2.4. 获取人员详情三、代码讲解3.1.…

【深度学习】基于 Alluxio 数据缓存的性能优化

作者 | 车漾(阿里云高级技术专家)、顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数据统一管理和高效缓…

企业微信H5_身份验证,PC网站企业微信扫码授权登录

企业微信H5_身份验证,PC网站企业微信扫码授权登录 文章目录一、扫码登录配置1. 企业微信扫码登录接入流程2. 企业微信扫码登录接入流程拆解3. 开启网页授权登录二、实战演练2.1. 用户发起流程2.2. 构造授权链接2.3. 显示扫码二维码2.4. 用户扫码2.5. 用户确认登录2.6. 回调前端…

深根固柢 云起磐石——移动云大云磐石服务器重磅推出

中国移动云能力中心在2020年中国移动全球合作伙伴大会移动云分论坛上,发布了新型自研软硬融合弹性计算架构——大云磐石服务器。该架构以自主设计的可编程芯片HyperCard和轻量级Hypervisor为核心,将存储、网络虚拟化能力卸载到硬件芯片,彻底突…

面向大数据与云计算调度挑战的阿里经济体核心调度系统

编者按 伏羲(Fuxi)是十年前最初创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute,分布式调度 Fuxi),当时的设计初衷是为了解决大规模分布式资源的调度问题(本…

企业微信_读取成员(获取用户详情)

接上一篇:企业微信H5_身份验证,H5应用网页授权登录获取身份 这篇获取用户详情信息,是在上一篇(我们已经获取到用户的简要信息)基础上做的。 文章目录一、官网文档1. 阅读官网文档2. 接口地址和参数3. 重点说明二、实战演练三、代码讲解3.1. 获…

智算中心新基建 浪潮首发智算中心操作系统

2020年11月25日,“远见卓实 践所未见”浪潮云海创新论坛2020在济南召开。会议分享了浪潮对于前沿科技的创新洞见,并以扎实可靠的落地实践为用户呈现技术的商业价值。 会上,浪潮全球首发智算中心操作系统,信通院、OIF、Globaldata…

新基建来了!5G边缘计算如何展现勃勃生机?

最近“新基建”是个热词,那么新基建到底是什么?与之紧密相关的5G何去何从?这给边缘计算带来了什么机遇?边缘计算的生态产业链条是怎样的?它的典型特征和经济效益是什么?本文将为大家带来分享。 新基建是什…

企业微信H5_网页jssdk调用,ticket签名config及示例

文章目录一、验证域名归属校验1. 阅读文档2. 配置公网域名3. 登录企业微信管控台4. 选择自建应用5. 网页授权及JS-SDK6. 填写公网域名7.下载校验文件8. 校验文件移动9. 启动前端项目10. 浏览器校验11. 域名校验12. 应用主页二、前端代码实战2.1. 引入JS文件2.2.权限验证配置三、…

十强决赛即将拉开帷幕!TECHSPARK星星之火IT创新大赛诚邀您观赛

11月28日,作为湾区创见网络安全大会的重磅环节,TECHSPARK星星之火IT创新大赛十强决赛将拉开帷幕。在本次十强决赛中,参赛公司将进行项目路演,评委将按照技术、产品、市场与客户等维度进行评分,并最终评选出冠亚季军。获…

阿里云容器服务发布 Knative 托管服务

作者 | 何淋波、丁海洋、陈有坤 业界要闻 阿里云容器服务发布 Knative 托管服务 Knative 是 Kubernetes 生态最流行的 Serverless 编排框架。可 Knative 的 Controller 和依赖的网关这些常驻实例需要支付额外的 IaaS 成本和运维成本,这给应用的 Serverless 化带来…

企业微信H5_网页jssdk调用 判断当前客户端版本是否支持指定JS接口

接上一篇:企业微信H5_网页jssdk调用,ticket签名config及示例https://gblfy.blog.csdn.net/article/details/123170569 文章目录一、接入环境1. 阅读文档2. 接入要求二、前端接入和调试2.1. 代码效果2.2. 实战演练2.3. 信息分析2.4. 真实用途三、源码分享…

Apache RocketMQ 的 Service Mesh 开源之旅

作者 | 凌楚 阿里巴巴开发工程师 导读:自 19 年底开始,支持 Apache RocketMQ 的 Network Filter 历时 4 个月的 Code Review(Pull Request),于本月正式合入 CNCF Envoy 官方社区(RocketMQ Proxy Filter 官…

企业微信H5_网页jssdk调用 config和agentconfig的区别

文章目录一、文档阅读1. 企业微信JS-SDK作用2. config 接口注入权限3. agentConfig注入应用的权限二、二者区别1.引入js不同2. 参数个数不一样3. 获取应用的jsapi_ticket4. 支持的接口5. 效果演示三、源码分享3.1. 后端源码3.2. 前端源码一、文档阅读 1. 企业微信JS-SDK作用 …

阿里云飞天洛神2.0:开放弹性的云网络NFV平台

云网络架构 阿里云操作系统叫飞天,云网络平台称为洛神。作为飞天系统的核心组件,洛神平台支撑了超大规模租户、超大规模虚拟机的高性能云网络。 洛神平台由很多网络设备组成,在架构上主要可以分为两类:虚拟交换机AVS和各种网关设…

深源恒际医疗票据OCR落地九省市 服务范围覆盖过半市场

近年来,我国健康险市场规模持续保持高增长。银保监会最新统计数据显示,2019年中国健康险业务原保险保费收入6564亿元,同比增长29.75%。同时,随着民众风险保障意识的不断提升,未来健康险仍有巨大的潜在增长空间。据天风…

企业微信H5_网页jssdk调用 agentconfig选人选照片等案例演示

文章目录一、验证域名归属校验1. 阅读文档2. 配置公网域名3. 登录企业微信管控台4. 选择自建应用5. 网页授权及JS-SDK6. 填写公网域名7.下载校验文件8. 校验文件移动9. 启动前端项目10. 浏览器校验11. 域名校验12. 应用主页二、前端代码实战2.1. 引入JS文件2.2.权限验证配置三、…

Flink 1.10 细粒度资源管理解析

相信不少读者在开发 Flink 应用时或多或少会遇到在内存调优方面的问题,比如在我们生产环境中遇到最多的 TaskManager 在容器化环境下占用超出容器限制的内存而被 YARN/Mesos kill 掉[1],再比如使用 heap-based StateBackend 情况下 State 过大导致 GC 频…