Skip to content

Commit 712cc0d

Browse files
author
anatoliis
committed
Fixes validation on session type
1 parent 168487d commit 712cc0d

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

plugins/flask_yoti/flask_yoti/decorators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
from functools import wraps
22
from flask import redirect, session, url_for
3-
from flask.sessions import SecureCookieSession
43

54
from .context_storage import activity_details_storage
65
from .settings import get_config_value
6+
from .helpers import is_cookie_session
77

88

99
def yoti_authenticated(view_func):
1010
@wraps(view_func)
1111
def _decorated(*args, **kwargs):
1212
user_id = session.get('yoti_user_id')
13-
if isinstance(session, SecureCookieSession):
13+
if not is_cookie_session(session):
1414
activity_details = session.get('activity_details')
1515
else:
1616
activity_details = activity_details_storage.get(user_id)

plugins/flask_yoti/flask_yoti/flask_yoti.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
redirect,
99
url_for,
1010
)
11-
from flask.sessions import SecureCookieSession
1211
from yoti import Client
1312

1413
from .context_storage import activity_details_storage
1514
from .decorators import yoti_authenticated
1615
from .context_processors import yoti_context
1716
from .settings import get_config_value
17+
from .helpers import is_cookie_session
1818

1919

2020
flask_yoti_blueprint = Blueprint('flask_yoti', __name__,
@@ -34,7 +34,7 @@ def auth():
3434
client = Client(client_sdk_id, key_file_path)
3535
activity_details = client.get_activity_details(token)
3636
session['yoti_user_id'] = activity_details.user_id
37-
if isinstance(session, SecureCookieSession):
37+
if not is_cookie_session(session):
3838
session['activity_details'] = dict(activity_details)
3939
else:
4040
activity_details_storage.save(activity_details)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from flask.sessions import SecureCookieSession
2+
from werkzeug.local import LocalProxy
3+
4+
5+
def is_cookie_session(session):
6+
if isinstance(session, SecureCookieSession):
7+
return True
8+
if not isinstance(session, LocalProxy):
9+
return False
10+
if isinstance(session._get_current_object(), SecureCookieSession):
11+
return True
12+
return False

0 commit comments

Comments
 (0)