我正在 Play Framework 2.1.3 中编写博客引擎,对于评论,我想使用验证码或类似的东西来避免自动垃圾邮件。我找到了一些关于验证码的帮助,但这仅适用于 Play 1.x,它对我不起作用。请提供一些有关如何在 Play 2.1.3 中使用验证码的帮助。谢谢!
问问题
3060 次
2 回答
7
我确实尝试了谷歌的recaptcha,它有效,但它很糟糕(很难阅读)。
我在 Play 框架 2.2.1 中使用 Java 实现了一个简单的解决方案。
下载Kaptcha是一个开源的验证码包。把它放在 lib 文件夹中。
在Application.java中实现验证码方法。
public static Result captcha(){ DefaultKaptcha captchaPro=new DefaultKaptcha(); captchaPro.setConfig(new Config(new Properties())); String text=captchaPro.createText(); Logger.debug("Captcha:"+text);//U can put the text in cache. BufferedImage img=captchaPro.createImage(text); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try{ ImageIO.write(img, "jpg", baos); baos.flush(); }catch(IOException e){ Logger.debug(e.getMessage()); } return ok(baos.toByteArray()).as("image/jpg"); }
将路由添加到路由文件。访问 http://[yourhost]:[port]/captcha 。
GET /captcha controllers.Application.captcha
于 2013-11-16T06:06:15.853 回答
2
以谷歌的recaptcha为例,你甚至可以找到一个简短的教程如何实现它(注意:我没有检查它的有效性)
于 2013-08-31T21:20:19.593 回答