전체 글
-
[Django] DRF jwt 인증방식을 이용한 로그인, 회원가입 구현하기Django 개발 2022. 3. 28. 01:35
JWT(Json Web Token)란? JWT란 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미합니다. JWT는 클라이언트에서 Http 리퀘스트 헤더에 JSON 토큰을 넣어 보내면 서버는 헤더에 포함되어 있는 JWT 정보를 통해 인증합니다. Django Built-in Token과 JWT 차이점 Django : DRF Token based Authentication VS JSON Web Token I am building a real world application where users will access the app primarily from Android, iOS devices as well as Desktops. From my elementary research, I have ..
-
[Django] postman 로그인 API CSRF token missing 오류 해결Django 개발 2022. 2. 21. 10:42
postman에서 django-rest-auth를 사용하여 로그인 url로 데이터를 전송했더니 아래와 같은 오류가 표시되었다. "detail": "CSRF Failed: CSRF token missing or incorrect." 원인을 서치해보니 DEFAULT_PERMISSION_CLASSES 설정 때문이었다. postman을 사용할 때만 임시로 SessionAuthentication을 주석처리한 후 BasicAuthentication으로 테스트해볼 수도 있지만 이왕이면 깔끔한 해결 방법을 찾고 싶었다. REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.SessionAuthentication', )..
-
[Jquery] toggleclass 작동 안 함 not working웹 프론트 개발 2021. 10. 24. 18:08
$(".showMore").on("click", function() { $(this).toggleClass("expanded"); }); 클래스의 클릭 이벤트를 캐치하여 expanded라는 클래스가 없으면 넣어주고, 있으면 없애는 간단한 코드가 작동 안 하는 현상을 발견했습니다. 클릭 이벤트도 정상적으로 발동하고 addClass는 또 되는 것 같고 이것저것 알아보다 알아낸 사실은 $(this)로 잡아준 앨리먼트에 showMore이라는 다른 클래스가 있어서 그런 것 같더라고요. showMore을 id로 수정하면 정상 작동이 되는데 여러번 반복되는 엘리먼트가 있어서 id로는 지정해줄 수 없어 상위 div를 만들어 showMore이라는 클래스를 넣어주고 children()을 통해 p태그에 expanded를 추..
-
[Django] unknown output field 오류 해결 방법카테고리 없음 2021. 10. 24. 17:49
Cannot resolve expression type, unknown output_field 생성일로부터 60일 후를 마감일로 설정하는 필드를 annotate를 사용하여 만든 후, 마감일이 오늘 이전이면 제외시켜주는 코드를 작성했는데 위 오류가 떴다. review_compositions = ReviewComposition.objects.annotate( deadline=F('created') + timedelta(days=60) ).exclude( deadline__lte=datetime.today() ) 이는 새로 만들어준 deadline의 필드 타입을 알 수 없어서 today와 비교할 수 없어서 나타났다. 이때 Sum, Count, Case, Value, Max, Min 등을 이용하는 코드라면 ou..
-
[Jquery] Input 숫자만 입력받기, 최대 글자수 지정하기 (numbers only, max length)웹 프론트 개발 2021. 9. 27. 14:52
기본적으로 HTM의 input은 tel이라는 타입이 존재하며 maxlength를 설정할 수 있다. type="tel"을 사용하면 모바일에서 해당 방식으로 표시되며 PC에서는 숫자외에 한글, 영문, 특수문자 등이 입력되지 않는다. 또한 maxlength 이상으로 숫자를 입력할 수 없다. 하지만 이 방식을 통과하는 케이스가 있다. 직접 입력하는 것이 아니라 복사, 붙여넣기를 하거나 자동완성을 이용하는 경우이다. 이런 케이스까지 방지하기 위해서는 아래처럼 input에 입력이 들어왔을 때 value를 체크하여 숫자가 아닌 문자를 모두 ""로 바꿔주면 된다. this.value = this.value.replace(/[^0-9\.]/g,""); 로 바꿔서 사용할 수 있다. $("#phoneInput").keyup..