-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHELP
93 lines (69 loc) · 2.95 KB
/
HELP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
django-recaptcha-works Help
===========================
This file contains detailed information on how to configure and use
``django-recaptcha-works``.
reCaptcha Service
=================
In order to use this application you need a valid reCaptcha key pair, which
can be obtained for free from::
http://www.google.com/recaptcha
Installation
============
In your Django project’s settings module, add ``recaptcha_works`` to your
``INSTALLED_APPS`` setting::
INSTALLED_APPS = (
...
'recaptcha_works',
)
Configuration
=============
The ``recaptcha_works`` application accepts the following configuration
options:
RECAPTCHA_PUBLIC_KEY
The public key as obtained from *google.com/recaptcha*
RECAPTCHA_PRIVATE_KEY
The private key as obtained from *google.com/recaptcha*
RECAPTCHA_USE_SSL
Boolean setting (``True``/``False``). Enables/disables secure communication
with the recaptcha servers.
RECAPTCHA_OPTIONS
A dictionary with the recaptcha customization options.
Read the following page for more information:
http://code.google.com/apis/recaptcha/docs/customization.html
RECAPTCHA_VALIDATION_OVERRIDE
Boolean setting (``True``/``False``). By default, this is set to ``False``.
When set to ``True``, the reCaptcha field validation is overridden. This
setting is not meant to be enabled in production, but only for application
testing. Also, note that this is a **global switch**, which, when enabled,
overrides validation of the reCaptcha field on all reCaptcha-protected forms.
To override the validation on a single form, set the ``required=False``
attribute on the reCaptcha field on that specific form.
Example configuration for production::
RECAPTCHA_PUBLIC_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
RECAPTCHA_PRIVATE_KEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
RECAPTCHA_USE_SSL = True
RECAPTCHA_OPTIONS = {
'theme': 'white',
'lang': 'en',
'tabindex': 0,
}
Usage
=====
*django-recaptcha-works* provides a form field which can be attached to your
forms. Implementing a reCaptcha protected form is a *two step* process.
**Step 1**: Create the reCaptcha protected form::
from django import forms
from recaptcha_works.fields import RecaptchaField
class RecaptchaProtectedForm(forms.Form):
# ... other form fields
recaptcha = RecaptchaField(label='Human test', required=True)
**Step 2**: Use the ``fix_recaptcha_remote_ip`` decorator around the view that
processes the form data. This is required because the remote IP is a mandatory
argument for the verification of the information the user has submitted in the
reCaptcha field, but it cannot be added to the form field automatically due to
limitations of the Django framework::
from recaptcha_works.decorators import fix_recaptcha_remote_ip
@fix_recaptcha_remote_ip
def view(request, *args, **kwargs):
if request.method == 'POST':
# ... process the form data here