Skip to content

Commit 6eafbfd

Browse files
fix: raise error
1 parent 8bff428 commit 6eafbfd

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

cursus/views/oauth.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def authorize(provider: str):
2626
return flask.abort(404)
2727

2828
flask.session["oauth2_state"] = secrets.token_urlsafe(16)
29-
next = flask.request.args.get("next")
29+
next = flask.request.args.get("next", None)
3030

3131
query_string = urlencode(
3232
{
@@ -55,7 +55,9 @@ def callback(provider: str):
5555
if not provider_data:
5656
return flask.abort(404)
5757

58-
if flask.request.args.get("state") != flask.session["oauth2_state"]:
58+
state = flask.request.args.get("state", None)
59+
60+
if state is None or state != flask.session["oauth2_state"]:
5961
return flask.abort(401)
6062

6163
if "code" not in flask.request.args:
@@ -87,7 +89,10 @@ def callback(provider: str):
8789
if not oauth2_token:
8890
return flask.abort(401)
8991

90-
token_response = response.json()
92+
try:
93+
token_response = response.json()
94+
except Exception:
95+
flask.abort(400, "Invalid token response")
9196

9297
response = requests.get(
9398
provider_data["userinfo"]["url"],
@@ -98,9 +103,12 @@ def callback(provider: str):
98103
)
99104

100105
if response.status_code != 200:
101-
return flask.abort(401)
106+
return flask.abort(401, "Cannot get user info")
102107

103-
data_response = response.json()
108+
try:
109+
data_response = response.json()
110+
except Exception:
111+
flask.abort(400, "Invalid data response")
104112

105113
uniform_account = get_account(provider, token_response, data_response)
106114
account_from_database = (
@@ -139,8 +147,6 @@ def callback(provider: str):
139147

140148
db.session.commit()
141149

142-
print(uniform_account.providerAccountId)
143-
144150
# Select User based on Account
145151
user_for_login = (
146152
db.session.query(User)

0 commit comments

Comments
 (0)