본문 바로가기

코딩공부/Django14

DRF 커스텀 유저 구현하기, access token의 payload 수정 방법 커스텀 유저 구현 커스텀 유저를 구현하기 위해 공식 문서를 참고하여 코드를 구현해보자. 공식 문서에는 email 주소와 생년월일을 필수로 기입하도록 설정되었지만, 생년월일을 빼고 email 주소로 회원가입을 하고 로그인을 할 수 있도록 구현해 볼 것 이다. https://docs.djangoproject.com/en/4.1/topics/auth/customizing/ Customizing authentication in Django | Django documentation | Django Django The web framework for perfectionists with deadlines. Toggle theme (current theme: auto) Toggle theme (current theme.. 2022. 11. 10.
DRF Feedview 헤쳐보기 / TIL_221027 인스타나 유튜브 또는 여러 SNS에서 사용하는 피드 기능 즉, 팔로우 유저 컨텐츠를 보여주는 기능을 공부해보았다. DRF의 클래스 기반의 뷰를 사용 하여 피드 기능을 구현하였고, # views.py class FeedView(APIView): permission_classes = [permissions.IsAuthenticated] def get(self, request): q = Q() for user in request.user.followings.all(): q.add(Q(user=user),q.OR) feeds = Article.objects.filter(q) serializer = ArticleListSerializer(feeds, many=True) return Response(serializ.. 2022. 10. 27.
DRF JWT, CORS 란? / TIL_221026 JWT(Json Web Token)란? JWT란 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미한다. JWT는 클라이언트에서 HTTP 리퀘스트 헤더에 JSON 토큰을 넣어 보내면 서버는 헤더에 포함되어 있는 JWT 정보를 통해 인증한다. JWT 인증 과정 1. 클라이언트에서 사용자의 인증 정보를 서버에 전달 2. 서버는 인증 정보로 인증을 처리하고 JWT를 생성하여 클라이언트에 전달 3. 클라이언트는 JWT를 브라우저에 저장 4. 클라이언트는 이후 이러어지는 요청에 JWT를 이용 5. 서버는 JWT를 검증하여 인증을 처리 6. JWT가 만료되면 토큰을 refresh Simple-JWT 설치 및 세팅 pip install djangorestframework-simplejwt # setti.. 2022. 10. 26.
Django 이미지 업로드 기능 구현 / TIL_221018 Django 이미지 업로드 구현하기 로그인 한 후에 자신의 계정에 사진을 저장할 수 있는 기능을 만들 때, 사용할 수 있는 이미지 업로드 기능을 구현해보고자 한다. 앱은 user와 photo를 생성 settings.py에서 업로드 된 이미지를 저장할 수 있도록 media 경로를 설정 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') urls.py에도 + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 업로드 된 파일의 경로를 설정 urlpatterns = [ path('admin/', admin.site.urls), path('', include('user.urls')), .. 2022. 10. 18.
Django password 암호화 / TIL_221017 장고로 회원가입과 로그인 기능을 구현하고 확인 차 회원가입을 하고 로그인을 진행했는데 안되는 문제 발생! 원인을 찾던 중 데이터베이스를 확인해 보니 패스워드가 저장이 안되는걸 발견하게 됐다. AbstractUser를 사용하여 장고에서 제공하는 user 필드에 핸드폰번호, 주소만 추가하고 나머지는 그대로 사용 회원가입할 때 username, password, phone, address를 저장하기 위해 아래와 같이 코드를 짰는데 패스워드가 저장이 안된 던 것!! 확인해보니 장고에서는 패스워드를 암호화하지 않으면 저장이 안된다. models.py from django.db import models from django.contrib.auth.models import AbstractUser class User(.. 2022. 10. 17.