deploy login & reCaptcha
This commit is contained in:
43
apps/captcha_app/api/v1/views.py
Normal file
43
apps/captcha_app/api/v1/views.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from rest_captcha.settings import api_settings as settings
|
||||
from rest_framework import views
|
||||
import uuid
|
||||
from rest_captcha import utils
|
||||
import base64
|
||||
from rest_framework import response
|
||||
from .utils import (
|
||||
random_char_challenge,
|
||||
generate_image
|
||||
)
|
||||
from django.core.cache import cache
|
||||
|
||||
|
||||
class CustomizeRestCaptchaView(views.APIView):
|
||||
"""
|
||||
overriding RestCaptchaView to generate captcha image
|
||||
"""
|
||||
authentication_classes = () # noqa
|
||||
permission_classes = ()
|
||||
|
||||
def post(self, request):
|
||||
key = str(uuid.uuid4())
|
||||
value = random_char_challenge(settings.CAPTCHA_LENGTH)
|
||||
cache_key = utils.get_cache_key(key)
|
||||
print(cache_key)
|
||||
cache.set(cache_key, value, settings.CAPTCHA_TIMEOUT)
|
||||
print(cache.get(cache_key))
|
||||
|
||||
# generate image
|
||||
image_bytes = generate_image(value)
|
||||
image_b64 = base64.b64encode(image_bytes)
|
||||
|
||||
data = {
|
||||
settings.CAPTCHA_KEY: key,
|
||||
settings.CAPTCHA_IMAGE: image_b64,
|
||||
'image_type': 'image/png',
|
||||
'image_decode': 'base64'
|
||||
}
|
||||
return response.Response(data)
|
||||
|
||||
def get(self, request):
|
||||
key = cache.get("rest_captcha_9e3ca166-c2f8-41e8-8f19-aa6f520fc123.0")
|
||||
return response.Response(key)
|
||||
Reference in New Issue
Block a user