文章
Michael Lei · 六月 21 阅读大约需 3 分钟

生成和校验验证码

如果您使用InterSystems技术开发了自己的网络应用,现在想在客户端进行验证码验证,以确定用户真实性使其更加安全。有一些现代框架可以解决验证码的问题,然而它们中的大多数需要互联网接入来生成代码,有时实施起来很复杂。考虑到图像识别已经非常成熟,您可以参考本文为基本例子。这就是为什么现在倾向于看到更多的模式识别验证码而不是单纯的阅读验证码。(例如,点击所有有店面的图片)。如果你需要更复杂的东西,请继续开发,改进这个代码并分享它。 继续阅读以了解如何使用这个基本的例子:

  

Demo.Captcha class

使用这个类,你可以在一个物理目录上创建验证码图像文件,以便在你的应用程序上显示。请注意,创建图像的目录必须是可用的,以便你的Web应用程序访问这些图像。要创建验证码图像,请调用以下方法,将完整的文件名作为一个参数:

 

创建 image 文件

 

Set tCount = $Increment(^CacheTemp("CAPTCHA",0))
        
Set tPath  = "C:\InterSystems\Ensemble201710\CSP\user\images\captcha\"
If '##class(%File).DirectoryExists(tPath) {
    Set tSC = ##class(%File).CreateDirectoryChain(tPath) 
}         
         
Set tFileName = %session.SessionId_tCount_".bmp"        
Set tFullName = tPath_tFileName
Set tCaptcha = ##class(Demo.Captcha).CreateImage(tFullName) 
Write tCaptcha,!

 

在 System/系统 > Security Management/安全管理 > Web Applications/Web 应用 > Edit Web Application/编辑Web应用菜单下添加“\images\captcha\”  , 请注意 CSP 文件物理路径在上面代码里是一样的。

 

 

运行上面的代码来创建验证码图像后,请看一下该路径。你会看到所有生成的验证码图像如下(注意,你需要一个%session对象):

 

 

Demo.Captcha类中的CreateImage()方法也将返回生成的验证码,它将允许你在你的Web应用程序上对用户输入的验证码进行验证。

 

例子

为了使大家的工作简单点,我准备了一个简单的CSP文件,可以渲染一个验证码图像并进行验证。你可以导入所附的XML文件,并根据需要验证和改变路径以匹配你的CSP Web应用。

  • 安装在USER命名空间上,打开Studio并导入XML文件;
  • 在浏览器上打开 captcha.csp 文件;
    • 点击 “change image/换一张” 按钮 来创建和显示新的captcha图像;
  • 在空白输入框中输入图像代码;
  • 点击验证按钮并检查信息;

 

导入类

  • 打开 Studio;
  • 选择 USER 命名空间;
  • 到Tools/工具->Import Local导入本地 菜单下并选择你下载好的 captcha.xml ;
  • 根据下图导入需要的类;

  • 根据你的CSP Web应用改变验证码图像路径;

  • 在浏览器通过点击浏览网页按钮 打开captcha.csp 文件;

  • 如果你需要改变图像,点击改变图像按钮;
    • 查看验证码图像目录;
  • 在空白输入框中输入验证码,并点击验证;
    • 查看结果;
    • 随意重复这些步骤;

 

希望这些能帮助到您,欢迎随时联系我们.

 

Fábio Gonçalves

Sales Engineer - Intersystems Brazil

0
0 15
讨论 (0)1
登录或注册以继续