2017-03-04 4 views
0

flask-recaptcha를 사용하는 데 많은 어려움을 겪고 있습니다. 기본적으로 여기 튜토리얼 (https://github.com/mardix/flask-recaptcha)을 따르지 만 작동하지 않습니다. 여기에 내 설정입니다. __iniy__.py에서flask-recaptcha를 작동 시키려면

나는

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
from flask_mail import Message, Mail 
from flask.ext.elasticsearch import FlaskElasticsearch 
from flask_recaptcha import ReCaptcha 

app = Flask(__name__) 
app.config.from_pyfile('../config.py') 
db = SQLAlchemy(app) 
mail = Mail(app) 
es = FlaskElasticsearch(app) 
recaptcha = ReCaptcha(app=app) 

from app import views 

가 지금은 views.py 및 설치에 일부 구성 매개 변수

from app import db, app, models, mail, es, recaptcha 
app.config.update({ 
    'RECAPTCHA_ENABLED': True, 
    'RECAPTCHA_SITE_KEY': "public", 
    'RECAPTCHA_SECRET_KEY': "private" 
}) 

을 reCAPTCHA를 가져오고 register.html에 내가 {{ recaptcha }}을 포함 할. 양식이 올 때 나는

recaptcha.verify() 

을 확인하지만 항상 참을 제공합니다. recaptcha는 심지어 페이지에 표시되지 않습니다? Google recaptcha에 내 도메인을 등록했으며 해당 사이트에서 제공 한 공개 키와 개인 키를 사용합니다. flask-recaptcha 패키지를 사용하는 대신 Google recaptcha 사이트에서 제공 한 스 니펫을 사용할 수 있으며 정상적으로 작동하는 것으로 보입니다. 그러나 표준 패키지를 사용 하시겠습니까 ?? 또한 recaptcha.verify()는 확인되지 않았거나 제출되지 않았 음을 의미합니까 (클릭하지 않은 것을 의미)? 어떤 도움을 주신 경우

진행 상황 : Ok 사이트 호스트에서 recaptcha가 제대로 표시되는 것을 확인했는데 localhost에서는 전혀 표시되지 않습니다 ... 로컬 호스트가 google recaptcha에 등록되어 있지 않기 때문입니다. 매우 혼란 스럽다. 대신 하나는 아마도이 도메인이 등록되지 않았다는 메시지를 표시한다 ...하지만 난 제출하기 전에 reCAPTCHA를 클릭하지 않은 경우에도 어쨌든, 나는 아직도

recapcha.verify() = True 

를 얻을? recaptcha가 제출되었는지 확인해야합니까?

답변

1

누군가가 비슷한 문제가있는 경우를 대비하여 구성 매개 변수 정의를 간단히 전환하여 문제가 해결되었습니다. recaptcha를 초기화 한 후에 설정 매개 변수를 설정하는 것은 효과가없는 것 같습니다. 이유를 모르겠다.

난 더 이상 __init__.py에 아무것도하지 않고 views.py에서 나는 다음과 같은 코드가 있습니다 : 여기에서 잘 작동 내 설정이며,

from flask_recaptcha import ReCaptcha 

app.config.update(dict(
    RECAPTCHA_ENABLED = True, 
    RECAPTCHA_SITE_KEY = "public", 
    RECAPTCHA_SECRET_KEY = "private", 
)) 

recaptcha = ReCaptcha() 
recaptcha.init_app(app) 

을 그리고 그것 뿐이다.

관련 문제