verify-code: 让新加入群聊的用户使用验证码校验!

本插件会让新入群的用户通过验证码才能入群。
ToDo:

  • 发送匹配数字(已完成)
  • 发送算式计算(未完成)
    © 2024 Zhihan
1 个赞

算数计算很简单的,先得到匹配数字,然后(减去、乘去、加去)随机数。然后得到的结果作为 a,那个生成的随机数作为 b。然后 a (加去、除去、减去)b 的方式显示出来就行了。

你俩个逻辑都可以一起推出的。

2 个赞

验证应该到某个前台页面下验证。

由于 qqbot 适配器 不支持 禁言/踢出 群员。所以这个功能只适用于其他平台。因此我不想做开发。

在这我给你提供一个简单的开发思路,可以参考下:


1. 部署多端同步

koishi 本地存入一个对象,周期性或者主动性的向接口服务器获取新的当前该对象。这个操作叫做同步。

当新加入群员后,插件应立刻向服务器提交一次同步。这个对象应包括

群员标识、群标识、验证凭据、验证状态,辩识码

验证凭据 可以是题目列表id,用户需完成答题考试

服务器定期做的是更新对象,并添加额外信息。 (用于辩识是哪个群的新群员,它要进哪个群,它进群的验证码或者题目id列表是多少)

并返回一个辩识码,koishi私聊发送给新群员用于验证的前台网站,和辩识码拼接的消息。可以直接做参数url的拼接。

用于群员去前台页面先输入辩识码或者自动获取辩识码后才可进行后续验证。


2. 验证环节

用户输入辩识码后,前台页面发送给后端请求,记录ip地址。返回对应题目,进行验证考试
(到了这一步,你理应掌握了用户的一切)

用户完成答题考试,返回给服务器进行核对。一旦核对通过,目标对应辩识码的用户信息的验证状态就会发生改变。

例如:

0 等待验证
1 完成验证,等待后续操作
2 已完成

koishi 端通过去查找状态为 1 的目标,进行验证成功的后续业务 (例如解除群员禁言,欢迎群员)

完成后续业务后,将目标验证状态改为 3。

服务器的用处是周期性去记录验证状态为 3 的对象存入日志,并删除该对象。达到垃圾清理和记录封存的效果。

最后,依靠日志的梳理,还能完成后续开发:

加群人数,完成验证人数

3 个赞

我好像看见过有人做过类似的,就是找一个验证码接口平台,然后前台新用户执行 verify <uuid> <验证码>然后后台进行验证和存储,然后存储到数据库,这样同个用户加入不同的群时不需要重复验证了

1 个赞

我有一个小小的问题
image
请问我要怎么在被禁言的情况下发验证码

3 个赞

哈哈哈,我以为是私聊。

3 个赞

兄弟 你这也要抄吗

虽然上面的格式是错的 你改对了

3 个赞

草,我昨天在群里说的是基于官方机器人的回调按钮来做到禁言验证,做出这玩意我是没想到

3 个赞

这是拿的Bing的版权格式改的啊()

1 个赞

啊?我看看我逻辑哪里错了,应该是验证码不输入再禁言

1 个赞

[捂脸][OK]

2 个赞

[捂脸][OK]

2 个赞

已经修复此BUG

1 个赞


突然理解他这个的含义了

1 个赞

就是你自己了喵! VeriCode - 入群人机验证插件 - 插件发布 - Koishi Forum

1 个赞