企业微信应用 应用号内消息链接无法在企微内置浏览器打开 windows PC客户端 问题解决

问题

需求是每周在企微的应用号上发送周报,周报中会带着进入系统的链接,点击进入可以查看详情。系统需要登录鉴权,因此需要在内置浏览器打开便于自动认证。

但是,在企微应用号发送的链接,手机上可以正常使用企微内置浏览器打开,PC端却会在系统默认浏览器打开,而不是企微内置浏览器打开,导致oauth认证失败。
在这里插入图片描述

注意:企微群聊机器人发送的链接可以正常打开,无此类问题,该问题仅出现在企微应用号上。

原因

这个应该是企微客户端的问题,类似问题在企微的讨论区出现了很多,客服说各个客户端表现不一致是设计如此,至今未做修改(2024-06)。

问题节选:
windows客户端打开推送消息中的链接时无法使用内置浏览器?

方案

看似无解的问题,在某个大哥的回答中出现了转机,企微客户端会在链接跳转时判断域名,如果是 open.weixin.qq.com的oauth2.0链接,就会使用内置浏览器打开。

我们的业务逻辑一般是:

在这里插入图片描述
这里第一步会访问我们的后台,生成oauth认证地址,再301重定向。
那么,如果我们提前生成oauth地址https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&....,这里第一步直接就是企微认证,则可以在内置浏览器中打开。

该方案仅windows 客户端验证有效,其他客户端暂不清楚。

方案漏洞

该方案还存在一个问题,暂时没有好的解决方案。

我们在生成oauth地址时,为了安全,可以携带一个state参数,企微认证成功后会把state参数原样返回,便于我们校验请求是否半路被篡改。
在原有逻辑中,会直接随机生成一个state参数,传递过去,由于认证过程很快,state很快就可以失效了。
改成新的方式后,state参数需要改成有效期更长的或者是永久有效。,存在一些安全问题。

虽然存在这个小问题,但是总体在企微未做修改之前,也只能这么采用了。

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 11:04:16       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 11:04:16       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 11:04:16       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 11:04:16       18 阅读

热门阅读

  1. 达梦8 新老排序机制比较

    2024-06-09 11:04:16       7 阅读
  2. 如何利用langchian调用百度大模型API

    2024-06-09 11:04:16       10 阅读
  3. 链桨PaddleDTX-基于区块链的联邦学习

    2024-06-09 11:04:16       9 阅读
  4. 图像特征提取 python

    2024-06-09 11:04:16       8 阅读
  5. vue脚手架 笔记01

    2024-06-09 11:04:16       8 阅读
  6. 金融数据分析----code详解版

    2024-06-09 11:04:16       7 阅读
  7. 深入理解交叉熵损失CrossEntropyLoss - 损失函数

    2024-06-09 11:04:16       8 阅读
  8. 深入浅出服务发现:构建动态微服务架构的基石

    2024-06-09 11:04:16       7 阅读
  9. 事件驱动架构:新时代的软件设计范式

    2024-06-09 11:04:16       5 阅读
  10. C/C++开发,,pthreads-win32官网,pthreads-win32

    2024-06-09 11:04:16       6 阅读