python - 如何使用 WhatsApp 等二维码进行自动登录?
问题描述
就像我们尝试登录 WhatsApp 网页时一样,我们需要使用手机扫描浏览器上显示的二维码。
它实际上是如何工作的..?
我也想使用 Flask 应用程序来制作它,到目前为止,我发现了这个很好的包,叫做Flask-QRcode。
我已经对该软件包进行了几次实验,并尝试使用我在 PlayStore 上下载的一些免费应用程序扫描 QR 码结果,是的……我在手机上得到了与我之前设置的代码相对应的正确结果。
但现在,我想要的是:当我用手机扫描二维码时,我想对我的网络浏览器产生任何影响,就像我们第一次尝试登录时的 WhatsApp 网络一样。
有可能用 Flask 做这样的事情吗?如果是这样,请参考任何教程、源代码或示例代码来执行此操作。
解决方案
这与此工作流程类似:
- 使用浏览器登录网站
- 请求令牌以登录这显示为 QR 码,令牌有一些标准:
- 它应该很大以减少被猜测的机会(例如 256 位)。
- 它必须是唯一的
- 它需要与当前用户相关联。
- 包括到期时间。
- 您的移动应用程序会解码 QR 码并将其提供给您的网站,以代替用户名和密码。
- 令牌不得过期
- 然后令牌无效,因此无法再次使用
不太可能有现成的软件包可以为您实现此流程。您可能需要自己实现它并调整各个方面以适应您的应用程序特定的安全要求。至少,所有交互都必须通过 HTTPS。
我将通过 QR 码提供签名登录 URL 而不仅仅是令牌来扩展设计,这提供了额外的保护层以防止篡改。
推荐阅读
- node.js - Fastify Typescript 请求查询
- netlogo - NetLogo 中的 SEIS 疾病模型帮助 - 受感染的个体不会再次变得易感?
- kendo-ui-angular2 - 在 kendo UI 角度网格中显示来自嵌套 json 的数据
- coq - 比较总和 ssreflect
- linux - 为 SIM7600A 构建驱动程序时没有制定目标的规则
- sparql - PLS 帮助修复 SPARQL 查询
- javascript - IndexedDB - 在升级期间强制中止,但有承诺
- java - 同一个jtable中2个不同id的比较
- python - Can I fill NaN-Values of one column with specific list elements of another column?
- python - AttributeError:“QuerySet”对象没有“类别”属性