Enhance captcha validation logging in CaptchaWidget to improve error tracking

1 parent 765e0513
...@@ -65,13 +65,14 @@ class Login(CSRFSchema): ...@@ -65,13 +65,14 @@ class Login(CSRFSchema):
colander.String(), widget=widget.PasswordWidget()) colander.String(), widget=widget.PasswordWidget())
def after_bind(self, schema, kwargs): def after_bind(self, schema, kwargs):
super().after_bind(schema, kwargs)
request = kwargs["request"] request = kwargs["request"]
csrf_token = new_csrf_token(request) # csrf_token = new_csrf_token(request)
log.debug(csrf_token) # log.debug(csrf_token)
self["csrf_token"] = colander.SchemaNode( # self["csrf_token"] = colander.SchemaNode(
colander.String(), widget=widget.HiddenWidget(), # colander.String(), widget=widget.HiddenWidget(),
default=csrf_token # default=csrf_token
) # )
if BASE_CLASS.login_captcha: if BASE_CLASS.login_captcha:
self["captcha"] = colander.SchemaNode( self["captcha"] = colander.SchemaNode(
colander.String(), colander.String(),
......
...@@ -402,11 +402,13 @@ class CaptchaWidget(Widget): ...@@ -402,11 +402,13 @@ class CaptchaWidget(Widget):
captcha_session = self.request.session.get("captcha", "") captcha_session = self.request.session.get("captcha", "")
if captcha_session: if captcha_session:
if pstruct != captcha_session: if pstruct != captcha_session:
_logging.error(f"Captcha tidak sesuai: {pstruct} != {captcha_session}")
raise Invalid(field.schema, captcha_message) raise Invalid(field.schema, captcha_message)
else: else:
captcha_file = os.path.join(settings['captcha_files'], pstruct) captcha_file = os.path.join(settings['captcha_files'], pstruct)
captcha_exists = os.path.exists(captcha_file) captcha_exists = os.path.exists(captcha_file)
if not captcha_exists: if not captcha_exists:
_logging.error(f"Captcha file not found: {captcha_file}")
raise Invalid(field.schema, captcha_message) raise Invalid(field.schema, captcha_message)
return pstruct return pstruct
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!