Feature/google oauth (#106)

google oauth
---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
This commit is contained in:
Ilya Y
2023-11-08 21:12:55 +03:00
committed by GitHub
parent 2679b2c873
commit 0e9f0b0682
6 changed files with 23 additions and 44 deletions

View File

@@ -3,7 +3,6 @@ from hashlib import sha256
from jwt import DecodeError, ExpiredSignatureError
from passlib.hash import bcrypt
from sqlalchemy import or_
from auth.jwtcodec import JWTCodec
from auth.tokenstorage import TokenStorage
@@ -11,7 +10,6 @@ from auth.tokenstorage import TokenStorage
# from base.exceptions import InvalidPassword, InvalidToken
from base.orm import local_session
from orm import User
from validations.auth import AuthInput
class Password:
@@ -65,20 +63,13 @@ class Identity:
return user
@staticmethod
def oauth(inp: AuthInput) -> User:
def oauth(inp) -> User:
with local_session() as session:
user = (
session.query(User)
.filter(or_(User.oauth == inp["oauth"], User.email == inp["email"]))
.first()
)
user = session.query(User).filter(User.email == inp["email"]).first()
if not user:
user = User.create(**inp)
if not user.oauth:
user.oauth = inp["oauth"]
user = User.create(**inp, emailConfirmed=True)
session.commit()
user = User(**user.dict())
return user
@staticmethod