nodejs文字点选验证

image.png
如上图所示,我奉命要开发这样一个组件,如果是仅用前端的话,倒是没什么难度。可问题来了,还需要后端的校验。

所以,我就有了2个问题:

  1. 验证码展现的方式,是后端把文字随机放上去后生成一张图片发到前端,然后前端展现,点击后返回坐标数据验证呢?还是,后端把随机坐标和文字发到前端,前端通过canvas生成图片,点击后返回坐标给后端进行验证呢?
  2. 如果是前者,在nodejs中,怎么储存之前生成的图片随机文字的坐标信息?
阅读 3.1k
2 个回答

第1种方法很简单,但是,要考虑加密传到前端的验证信息。
第2种只需要往前端传图片即可,nodejs有插件可以临时保存数据的,等到验证的时候记住清除就行了。不过,如果要从nodejs生成图片并传图片到前端,难点在于,生成图片这里。

能供nodejs自己画图的插件并不多,其实就是可以在nodejs上使用canvas罢了,配环境是最麻烦的!如果可以,直接找一个可以生成图片的插件好了,别自己画了,累。

当然是后端出图、后端验证啊。

这个东西的作用就是人机验证,防机器人的;如果你把验证区域的坐标在 HTTP 报文里来回传,机器人完全可以抓你的 HTTP 报文、直接就取出坐标了。那你这除了给正常用户造成麻烦以外,完全没起到防机器人的作用啊。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题