An Interest In:
Web News this Week
- April 27, 2024
- April 26, 2024
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
June 21, 2022 04:53 am GMT
Original Link: https://dev.to/dilutewater/integrating-hcaptcha-with-django-allauth-24lo
Integrating hCaptcha with Django-allauth
We may face issues when someone uses bots to abuse our system and send automated signup/password reset to random people. So hCaptcha is a really good way to avoid bots.
Setting Up hCaptcha account
- First we need new hCaptcha account. If you don't have an account, then create one at https://dashboard.hcaptcha.com/signup.
- After that you need to go on your hCaptcha dashboard's sites page at https://dashboard.hcaptcha.com/sites.
- Then create a new site, you can name it anything you want. After that click on the settings icon next to the site you created. You will see a site key. Copy it and keep it someone.
- Go to your account settings at https://dashboard.hcaptcha.com/settings and then copy and keep the secret key.
Installing hCaptcha
We will be using django-hCaptcha package from pypi.
- Install it using the following command
pip install django-hCaptcha
- Add hcaptcha to your INSTALLED_APPS setting like this:
# project/settings.pyINSTALLED_APPS = [ ... 'hcaptcha',]
- Addsitekey and secret key which we kept earlier to your settings.py file
# project/settings.py...HCAPTCHA_SITEKEY = '<your sitekey>'HCAPTCHA_SECRET = '<your secret key>'...
Add hCaptcha to forms
- Extend default allauth formsI referred to this article by geeksforgeeks for the same: https://www.geeksforgeeks.org/python-extending-and-customizing-django-allauth/
- Make forms.py file in any django app folder
# app/forms.pyfrom allauth.account.forms import SignupForm, ResetPasswordFormfrom hcaptcha.fields import hCaptchaFieldclass CustomSignupForm(SignupForm): hcaptcha = hCaptchaField(theme='dark') # if the order of fields isn't as you expected ,then you can use field_order #field_order = ['username', 'email', 'password1', 'password2', 'hcaptcha'] #customize this according to your form class CustomForgetPassword(ResetPasswordForm): hcaptcha = hCaptchaField(theme='dark')
- Make these as the default forms by declaring them in settings.py file
# project/settings.py...ACCOUNT_FORMS = { 'signup': '<app>.forms.MyCustomSignupForm', 'reset_password': '<app>.forms.CustomForgetPassword',}...
All Done
Congrats
Original Link: https://dev.to/dilutewater/integrating-hcaptcha-with-django-allauth-24lo
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To