随着 Deno 越来越流行,越来越多的人开始使用它来构建 Web 应用程序。在许多 Web 应用程序中,验证码是一个常见的功能。验证码可以帮助你的网站防止恶意行为,比如自动登陆,自动注册等等。在这篇文章中,我们将研究如何使用 Deno 处理图片验证码。
图片验证码介绍
图片验证码是一种人类理解简单,但对于机器难以识别的验证码。它们通常由数字和字母组成,有时包括空格和符号等特殊字符。这些验证码通常用于网站的登录页面、注册页面等,以确保只有真正的用户才能访问资源。
在 Deno 中,创建图片验证码并将其嵌入您的应用程序通常涉及以下步骤:
- 生成验证码文本
- 使用验证码文本创建图像
- 将图像作为响应发送到客户端
生成验证码文本
首先,我们需要生成验证码文本,该文本将用于创建图像并发送到浏览器。在 Deno 中,可以使用以下代码生成一个随机字符串作为验证码:
-- -------------------- ---- ------- -------- ---------------------------- - --- ------ - --- ----- ---------- - ----------------------------------------------------------------- ----- ---------------- - ------------------ --- ---- - - -- - - ------- ---- - ------ -- ------------------------------------------ - ------------------- - ------ ------- -
创建图像
下一步是将生成的文本转换为一个图像。这可以通过使用第三方 npm 包 jimp
来完成,该包可以帮助我们轻松地创建和处理图像。我们可以使用以下代码生成一个 100x50 像素的 PNG 图像。
-- -------------------- ---- ------- ------ ---- ---- ------- ----- -------- -------------------- ------ - ----- ------------ - ----- --- ----------------- ------- -- - --- --------- --- -------- ----- ------ -- - -- ----- ----- ---- -- --- ---- -- ----- ----- ---- - --------------------------------------- ------------ ----- --- -- - ----- ----- ----------- ----------------------------- ----------- --------------------------- -- -- -- -- --- ----- -- ----- --- ---- - - -- - - ------------------- ---- - --- ---- - - -- - - -------------------- ---- - -- -------------- - ------ - ------------------------------------------------ - ---- ------------- - ---- ------------- - ---- ----- -- --- - - - ------------------------------------------- ------- ----- -- - -- ------- -------------- -------------- --- --- --- ------ ------------- -
上述代码使用 jimp
包创建一个白色背景的 100x50 像素图像,并根据提供的文本将其印刷在图像上。然后,它在图像中添加了噪声,以使图像更难以识别。最后,它将图像转换为 Base64 编码的 PNG 文件,以便将其作为响应发送到客户端。
发送响应
最后,我们需要将图像作为响应发送到客户端。在 Deno 中,可以使用以下代码将生成的图像响应发送回客户端:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- ------------------- --------- -- ------------------------- --- ----- ------ --- -- ------- - -- -------- --- ----------- - ----- ----------- - ------------------------ ----- ------------ - ----- ---------------------------------- ------------- ------- ---- -------- --- --------- --------------- ------------ ---------------- ----------- --- ----- ------------- --- - ---- - ------------- ------- --- --- - -
上述代码创建了一个 Deno 服务器,然后使用 serve
函数将其绑定到 localhost:8000 上。当服务器接收到一个请求时,它将检查 URL 是否为 /captcha
。如果是,它将生成一个新的验证码文本和相应的图像,并在响应中发送它。
总结
在本文中,我们学习了如何在 Deno 应用中创建图片验证码。我们使用了 jimp
来创建图像,并发送一个带有验证码图像的 HTTP 响应。 此功能适用于任何需要提供验证码支持的 Deno 应用程序。 希望这篇文章对 Deno 开发者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64831e5848841e989428d75a