我正在Play Framework 2.1.3中编写一个博客引擎,我希望使用验证码或类似的东西来避免自动垃圾邮件。我找到了一些关于验证码的帮助,但这只适用于Play 1.x,它对我不起作用。请提供一些有关如何在Play 2.1.3中使用验证码的帮助。谢谢!
答案 0 :(得分:7)
我确实试过Google的recaptcha,它有效,但它很糟糕(这很难读)。
我在Play framework 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
答案 1 :(得分:2)
使用Google's recaptcha作为示例,您甚至可以找到short tutorial如何实现此功能(注意:我没有检查其有效性)