Как аутентифицировать сеанс Django, используя капчу? - PullRequest
0 голосов
/ 28 февраля 2020

Я создал веб-сайт и капчу. Капча генерируется моделями и отображается в шаблоне.

Просмотры

from resumesite.models import Chess_board
import json

def home(request):
    return render(request, 'home.html', {})

def chess(request):
    board = Chess_board()
    data = mark_safe(json.dumps(board.rep))
    return render(request, 'captcha_original.html',{'board': data})

Я хотел бы перенаправить все запросы на капчу, а по завершении перенаправить капчу на веб-сайт и разрешить полный доступ на время действия сеанс (то есть в течение 20 минут). Как бы вы предложили пойти по этому поводу?

Опции

  1. Middleware / decorator аутентификация по IP-адресу (я читал, что это не будет работать, если пользователь использует прокси)
  2. Пользовательская форма входа с декоратором @login_required(login_url="/chess/")
  3. Интеграция с REST и использование аутентификации токена

1 Ответ

1 голос
/ 29 февраля 2020

Вам потребуется использовать сеанс на стороне сервера для обработки доступа. Используя сеанс на стороне сервера, вы можете установить срок действия. В хранилище сеансов есть переменная с именем access = True, которую вы можете проверить в другой функции, если она существует, и обслуживать страницы. По истечении времени истечения этот сеанс удаляется, и функция увидит значение None. Для получения дополнительной информации прочитайте следующие документы https://docs.djangoproject.com/en/3.0/topics/http/sessions/#configuring -the-session-engine

...