• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z funkcja validującą recaptcha od googla i obsłużeniem JSON'a w FLASK APP

Object Storage Arubacloud
0 głosów
348 wizyt
pytanie zadane 12 października 2016 w Python przez Atomowy Nowicjusz (120 p.)

Pytanie odnośnie recaptcha / flask ( chciałem napisać własną funkcje validującą) 

Mam problem ze znalezieniem błędu w skrypcie jaki napisałem, całość działa tak że użytkownik uzupełnia formularz na stronie internetowej i przechodzi proces sprawdzenia rechaptcha. 

<form name="add_run" method="POST" >
                <input type="text" name="run_name" placeholder="Nazwa biegu"/><br/>
                [...]
                <input type="text" name="description" placeholder="Opis biegu"><br/><br>
                <div class="g-recaptcha" data-sitekey="SITE_KEY"></div>
                <button type="submit"> Dodaj bieg </button>

Dane z formularza są POSTowane do aplikacji (flask/python). 

@app.route('/add_run', methods=['GET', 'POST'])
[...]

    if request.method == "POST":
        # miejsce na mapowanie wartości
        run_name = request.form['run_name']
     [...]
        description = request.form['description']
        grecaptcharesponse = request.form['g-recaptcha-response']
        if verify_grecaptcha(grecaptcharesponse) == True: #coś się tutaj psuje - IF 

          # WPISANIE DANYCH DO BAZY DANYCH i przekierowanie na strone udalo sie
        else:
            # Przekierowanie na strone nie udało sie
    else: # obsłużenie Get'a [..]

    
Problem pojawia się w funkcji verify_grecaptcha która nie zwraca mi true w momencie kiedy dostanie od googla JSON'a który wygląda np tak :

 

jsonobj = {
        "success": "true",
       "challenge_ts": "2016-10-11T11:50:43Z",
       "hostname": "127.0.0.1"
   }
   
 FUNKCJA VALIDUJĄCA : 
 
 def verify_grecaptcha(response):

   secret_key = "SEKRET_KEY"
   response = "response"
   url = "https://www.google.com/recaptcha/api/siteverify" + '?secret=' + secret_key + '&response=' + response
   jsonobj = json.loads(urlopen(url).read().decode('utf-8'))
   if jsonobj["success"] == 'true' :
       return True
   else:
       return False

       
Wiem że połączenie z serwerem googla następuje i dostaje prawidłowe odpowiedzi - mam problem prawdopodobnie w rozpakowaniu json'a lub warunku i nie potrafię stwierdzić dlaczego.

W efekcie za każdym razem ląduje na stronie - nie udało się dodać biegu - nawet jeśli wszystko było po stronie formularza na WWW. 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 690 wizyt
0 głosów
2 odpowiedzi 457 wizyt
pytanie zadane 5 czerwca 2022 w PHP przez TlenekWodoru Użytkownik (520 p.)
0 głosów
1 odpowiedź 258 wizyt
pytanie zadane 18 sierpnia 2022 w Python przez Podlasianin Początkujący (400 p.)

92,551 zapytań

141,399 odpowiedzi

319,530 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...