useForm 사용하여 로그인 & 회원가입 구현 - 2. 회원가입

개발/ReactJS 2021. 11. 10. 08:20

이전 포스트에서 useForm을 활용해서 로그인을 구현하였다. useForm 사용하여 로그인 & 회원가입 구현 - 1.로그인 기존 프로젝트의 회원가입 & 로그인은 아래와 같이 global state로 유저 email, 비밀번호, 이름 등의 정보를 관리하여 한번에 signup 혹은 login API를 호출할 때, body에 json 형태로 담아 호출하는 방식으로 eight20.tistory.com 회원 가입 페이지의 경우, 한 페이지에 모든 유저 정보를 기입하게 Form을 구성하고, 회원 가입 클릭 시, 유저가 기입한 정보를 json 형식으로 전송하는 방식과, 여러 페이지에 걸쳐서 email, password 따로, 유저 이름, 휴대폰 번호등의 세부 정보를 따로 받는 방식의 두 가지 형태로 구분된다. 한 ..

[Github Action] Test 시 환경 변수 파일 처리

개발/Flask 2021. 11. 9. 08:20

Github Action을 통해 Flask의 유닛 테스트를 시도하는 도중 config.py에서 'DATABASE_URL'키의 값을 찾을 수 없다는 KeyError가 아래와 같이 발생되었다. .env 파일은 주로 API_KEY와 같은 민감한 정보를 담고 있는 환경 변수를 포함하고 있어서 보안 문제로 Github에 업로드를 하지 않지만, 테스트를 위해 업로드를 해야한다. Github Repository의 Actions Secret에는 환경 변수를 암호화해서 저장해놓고, Action에서 환경변수를 가져와서 사용할 수 있게 해준다. Github Action을 돌리는 Github 레포의 Secrets에 필요한 환경변수를 저장하고, Github Action의 해당 yaml 파일에 적용시킨다. name: flask ..

Article Thumbnail
[PyJWT] jwt.encode( )가 bytes-str이 아닌 str타입을 리턴 시

개발/Flask 2021. 11. 8. 08:20

jwt.decode('utf-8')에서 AttributeError: 'str' object has no attribute 'decode'. AttributeError: 'str' object has no attribute 'decode'. 와 같은 AtrributeError가 발생하였다. 원인 원인은 PyJWT 모듈의 버전 2.0.0 부터 jwt.encode가 리턴한 token의 타입이 bytes에서 str로 변경되였기 때문이다. 해결 방법 PyJWT의 버전을 2.0.0의 직전 버전인 1.7.1으로 변경하면 임시방편으로 해당 에러는 발생하지 않는다. 추후 2.0.0 버전 이상에서는 decode를 어떻게 하는지 추가할 예정이다. 참고) https://github.com/jazzband/djangorestf..

[TypeScript] array에 원하는 요소 추가하고, 삭제하기

개발/ReactJS 2021. 11. 6. 08:20

React에서 useState로 Array 타입을 관리하다보면, array에 요소를 추가하거나 삭제해야되는 경우가 있다. 추가하는 경우, 아래와 같이 array.concat()을 활용하거나, setArray([...array, 추가할 요소)]의 방식을 사용한다. const addArray = (item: any) => { array.concat(item); } 삭제하는 경우, 아래와 같이 array.filter를 사용하여 요소를 삭제한다. const deleteResource = async (id: number) => { array.filter((i) => i !== id); // id와 다를 경우, 삭제한다. };