|
@@ -37,10 +37,10 @@ async def query_user(user_id: str):
|
|
:param user_id: E-Mail of the user
|
|
:param user_id: E-Mail of the user
|
|
:return: None or the user object
|
|
:return: None or the user object
|
|
"""
|
|
"""
|
|
- result = User.filter(email=user_id).first()
|
|
|
|
|
|
+ result = await User.filter(email=user_id,is_gmail=0).first()
|
|
if not result:
|
|
if not result:
|
|
- print('[]')
|
|
|
|
- return []
|
|
|
|
|
|
+ print('無此筆資料')
|
|
|
|
+ return None
|
|
return result
|
|
return result
|
|
|
|
|
|
|
|
|
|
@@ -53,8 +53,9 @@ async def query_user_username(user_id: str):
|
|
"""
|
|
"""
|
|
result = await User.filter(username=user_id).first()
|
|
result = await User.filter(username=user_id).first()
|
|
if not result:
|
|
if not result:
|
|
- print('[]')
|
|
|
|
- return []
|
|
|
|
|
|
+ print('無此筆資料')
|
|
|
|
+ return None
|
|
|
|
+
|
|
return result
|
|
return result
|
|
|
|
|
|
|
|
|
|
@@ -85,17 +86,21 @@ oauth2_scheme = OAuth2PasswordBearer(tokenUrl="https://oauth2.googleapis.com/tok
|
|
|
|
|
|
CLIENT_ID = settings.CLIENT_ID
|
|
CLIENT_ID = settings.CLIENT_ID
|
|
@users.post("/login/google/access-token")
|
|
@users.post("/login/google/access-token")
|
|
-async def login(db: Session = Depends(deps.get_db), data: OAuth2PasswordRequestForm = Depends(), add_time_code: Optional[str] = None
|
|
|
|
|
|
+async def login(username: str = Form(default=''), password: str = Form(default=''), email: str = Form(default='')
|
|
) -> Any:
|
|
) -> Any:
|
|
"""
|
|
"""
|
|
OAuth2 compatible token login, get an access token for future requests
|
|
OAuth2 compatible token login, get an access token for future requests
|
|
"""
|
|
"""
|
|
- user = await User.filter(username=data.username).first()
|
|
|
|
|
|
+
|
|
|
|
+ user = await User.filter(email=email,is_gmail=1).first() # 確認信箱是否已存在
|
|
if not user:
|
|
if not user:
|
|
- u = await User.create(username=data.username, password=data.password)
|
|
|
|
|
|
+ u = await User.create(username=username, password=password, email=email, is_gmail=1)
|
|
|
|
+ # if user:
|
|
|
|
+ # print('已用相同信箱註冊過,再開一個GMAIL帳號')
|
|
|
|
+ # u = await User.create(username=username, password=password,email=email,is_gmail=1)
|
|
|
|
|
|
access_token = manager.create_access_token(
|
|
access_token = manager.create_access_token(
|
|
- data={'sub': data.username}
|
|
|
|
|
|
+ data={'sub': username}
|
|
)
|
|
)
|
|
return_msg = {
|
|
return_msg = {
|
|
"access_token": access_token,
|
|
"access_token": access_token,
|
|
@@ -128,20 +133,20 @@ async def add(username: str = Form(default=''), password: str = Form(default='')
|
|
if username and password and email:
|
|
if username and password and email:
|
|
user_email = await query_user(email)
|
|
user_email = await query_user(email)
|
|
user_username = await query_user_username(username)
|
|
user_username = await query_user_username(username)
|
|
- if user_email or user_username:
|
|
|
|
|
|
+ if user_email and user_username:
|
|
return {"msg":"該信箱或使用者名稱已存在","code":403}
|
|
return {"msg":"該信箱或使用者名稱已存在","code":403}
|
|
# elif user_username:
|
|
# elif user_username:
|
|
# return {"msg":"該使用者名稱已存在","code":403}
|
|
# return {"msg":"該使用者名稱已存在","code":403}
|
|
else:
|
|
else:
|
|
if password == re_password:
|
|
if password == re_password:
|
|
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
|
|
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
|
|
- u = await User.create(username=username, password=hashed_password, email=email)
|
|
|
|
|
|
+ u = await User.create(username=username, password=hashed_password, email=email,is_superuser=0,is_gmail=0)
|
|
if u:
|
|
if u:
|
|
message = '註冊成功'
|
|
message = '註冊成功'
|
|
subject = '註冊信'
|
|
subject = '註冊信'
|
|
print(message)
|
|
print(message)
|
|
send_email(email,message,subject)
|
|
send_email(email,message,subject)
|
|
- return {"msg": "註冊成功", "code": 200}
|
|
|
|
|
|
+ return {"msg": "已寄送註冊信", "code": 200}
|
|
else:
|
|
else:
|
|
return {"msg":"確認密碼錯誤","code":403}
|
|
return {"msg":"確認密碼錯誤","code":403}
|
|
|
|
|
|
@@ -294,4 +299,8 @@ async def delete(id: int):
|
|
|
|
|
|
return {"msg": "failed", "code": 400}
|
|
return {"msg": "failed", "code": 400}
|
|
|
|
|
|
-print('12334')
|
|
|
|
|
|
+
|
|
|
|
+@users.get("/information")
|
|
|
|
+async def get_information(email:str,is_gmail:int):
|
|
|
|
+ result = await User.filter(email=email, is_gmail=is_gmail).first()
|
|
|
|
+ return {"msg":result, "code":200}
|