diff --git a/pyramid_deform/__init__.py b/pyramid_deform/__init__.py index 675ea02..ea00616 100644 --- a/pyramid_deform/__init__.py +++ b/pyramid_deform/__init__.py @@ -386,12 +386,21 @@ def get_summary(self, request): @colander.deferred def deferred_csrf_value(node, kw): - return kw['request'].session.get_csrf_token() + if PY3: + return kw['request'].session.get_csrf_token().decode() + else: + return kw['request'].session.get_csrf_token() @colander.deferred def deferred_csrf_validator(node, kw): def csrf_validate(node, value): - if value != kw['request'].session.get_csrf_token(): + + if PY3: + token = kw['request'].session.get_csrf_token().decode() + else: + token = kw['request'].session.get_csrf_token() + + if value != token: raise colander.Invalid(node, _('Invalid cross-site scripting token')) return csrf_validate