miércoles, 27 de mayo de 2015

ReCaptcha en Grails con “ReCaptcha and Mailhide support for Grails”




¿Qué es ReCaptcha? 


Wiky: Recaptcha o reCAPTCHA es una extensión de la prueba Captcha que se utiliza para reconocer texto presente en imágenes. Emplea por tanto la prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano para, a su vez, mejorar la digitalización de textos. Recaptcha se basa en el hecho de que para un ser humano puede ser simple determinar el texto presente en una imagen cuando para una máquina esta tarea resulta en ocasiones demasiado compleja.

¿Qué es Captcha? 

Wiky: Captcha o CAPTCHA son las siglas de Completely Automated Public Turing test to tell Computers and Humans Apart (prueba de Turing completamente automática y pública para diferenciar computadoras de humanos).

¿Cuál es el principio de Recaptcha? 
Wiki: Cuando se digitaliza un documento impreso se toman fotografías del mismo y esas fotografías se convierten a texto empleando sistemas OCR. Sin embargo, ocurre que hay palabras que presentan dificultades para ser reconocidas automáticamente: aquellas que contienen letras deformes, manchas producto de defectos en la impresión del papel, páginas con polvo, entre otras. Estas palabras pueden ser identificadas por personas de manera mucho más confiable que por un sistema OCR computarizado. Recaptcha emplea esta facilidad del ser humano, para así lograr identificar un ser un humano de un programa de computadora.



Para saber más: http://es.wikipedia.org/wiki/Captcha http://es.wikipedia.org/wiki/Test_de_Turing

En esta entrada instalaremos el famoso plugin “ReCaptcha and Mailhide support for Grails” para ello basta con agregar a nuestro archivo BuildConfig.groovy

…
compile ':recaptcha:1.2.0'
…

Después de la instalación debemos ejecutar el siguiente comando para realizar una preconfiguración del plugin:

grails recaptcha-quickstarts 

Nos pedirá elegir entre integrated or standalone elegimos integrated. Al terminar en nuestro Config.groovy se habrán agregado al final las siguientes líneas:


// Added by the Recaptcha plugin:
recaptcha {
    // These keys are generated by the ReCaptcha service
    publicKey = ""
    privateKey = ""

    // Include the noscript tags in the generated captcha
    includeNoScript = true

    // Include the required script tag with the generated captcha
    includeScript = true

    // Set to false to disable the display of captcha
    enabled = true
}

mailhide {
    // Generated by the Mailhide service
    publicKey = ""
    privateKey = ""
}


Obteniendo PublicKey y PrivateKey 

Para obtener nuestras keys es necesario ir a la siguiente dirección: Administración de Recaptcha donde nos mostrara una pantalla como la siguiente:



El formulario es muy sencillo y bastante intuitivo por lo cual al registrar un nuevo sitio nos dará nuestras claves al instante:



Para terminar la configuración únicamente nos resta meter esos datos en donde corresponden dentro del archivo Config.groovy


Añadiendo Rechaptcha a nuestras Vistas

Añadir el plugin a nuestras vistas es tan simple como solo poner:

<recaptcha:recaptcha/>

Con este simple tag, tendremos el siguiente resultado en pantalla:





Validando la respuesta del plugin
def save = {
        def user = new User(params)
        ...other validation...
        def recaptchaOK = true
        if (!recaptchaService.verifyAnswer(session, request.getRemoteAddr(), params)) {
            recaptchaOK = false
        }
        if(!user.hasErrors() && recaptchaOK && user.save()) {
            recaptchaService.cleanUp(session)
            ...other account creation acivities...
            render(view:'showConfirmation',model:[user:user])
        }
        else {
            render(view:'create',model:[user:user])
        }
    }

No hay comentarios:

Publicar un comentario