|
@Transactional(propagation=Propagation.REQUIRED) |
|
async def create_user( |
|
self, email: str, password1: str, password2: str, nickname: str |
|
) -> None: |
|
if password1 != password2: |
|
raise PasswordDoesNotMatchException |
|
|
|
query = select(User).where(or_(User.email == email, User.nickname == nickname)) |
|
result = await session.execute(query) |
|
is_exist = result.scalars().first() |
|
if is_exist: |
|
raise DuplicateEmailOrNicknameException |
|
|
|
user = User(email=email, password=password1, nickname=nickname) |
|
session.add(user) |
|
|
위 소스코드 부분이 사용자를 추가하는 테스트 API 부분인데, 아무래도 비밀번호를 평문으로 저장한다는 것이 좀 걸리네요..
token_helper.py로 JWT 처리에 대한 로직도 있고, AuthBackend를 통해서 Authorization 까지 체크하는 기본적인 보안 기능을 제공하는데 기왕 하는김에 비밀번호 암호화 기능도 추가하는 건 어떤가 싶어 제안해 봅니다. (특히 국내에선 비밀번호 암호화가 법적으로 필수라서 꼭 추가했으면 좋겠네요)
그리고 추가적인 제안인데 JWT 토큰을 사용하는데 API단에서 예시가 없어서 로그인 시 JWT토큰 발급 / Bearer를 통한 JWT 토큰 사용 예시 API까지 추가했으면 하는 바램입니다
fastapi-boilerplate/app/user/services/user.py
Lines 34 to 49 in 75c8c82
위 소스코드 부분이 사용자를 추가하는 테스트 API 부분인데, 아무래도 비밀번호를 평문으로 저장한다는 것이 좀 걸리네요..
token_helper.py로 JWT 처리에 대한 로직도 있고,AuthBackend를 통해서 Authorization 까지 체크하는 기본적인 보안 기능을 제공하는데 기왕 하는김에 비밀번호 암호화 기능도 추가하는 건 어떤가 싶어 제안해 봅니다. (특히 국내에선 비밀번호 암호화가 법적으로 필수라서 꼭 추가했으면 좋겠네요)그리고 추가적인 제안인데 JWT 토큰을 사용하는데 API단에서 예시가 없어서 로그인 시 JWT토큰 발급 / Bearer를 통한 JWT 토큰 사용 예시 API까지 추가했으면 하는 바램입니다