🥅 Caught an error in OAuth
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import authlib.integrations.base_client
|
||||||
from fastapi import APIRouter, Request, HTTPException, Response
|
from fastapi import APIRouter, Request, HTTPException, Response
|
||||||
from classquiz.config import settings
|
from classquiz.config import settings
|
||||||
|
|
||||||
@@ -86,7 +87,10 @@ async def auth(request: Request, response: Response):
|
|||||||
if rememberme_token is not None:
|
if rememberme_token is not None:
|
||||||
return await rememberme_check(rememberme_token=rememberme_token, response=response)
|
return await rememberme_check(rememberme_token=rememberme_token, response=response)
|
||||||
oauth = init_oauth()
|
oauth = init_oauth()
|
||||||
token = await oauth.github.authorize_access_token(request)
|
try:
|
||||||
|
token = await oauth.github.authorize_access_token(request)
|
||||||
|
except authlib.integrations.base_client.OAuthError:
|
||||||
|
raise HTTPException(status_code=401, detail="The OAuth didn't work! :(")
|
||||||
resp = await oauth.github.get("user", token=token)
|
resp = await oauth.github.get("user", token=token)
|
||||||
user_data = GitHubOauthResponse(**resp.json())
|
user_data = GitHubOauthResponse(**resp.json())
|
||||||
user_in_db = await User.objects.get_or_none(email=user_data.email)
|
user_in_db = await User.objects.get_or_none(email=user_data.email)
|
||||||
|
|||||||
Reference in New Issue
Block a user