멋사 10기 졸업 프로젝트 (5) 썸네일형 리스트형 [Django] django rest-auth패키지를 이용한 유저 기능[2] - login,logout(로그인, 로그아웃) 앞에서 성공적으로 회원가입을 했으면 로그인, 로그아웃 기능은 쉽다. rest-auth가 제공하는 url을 이용하면 편리하게 기능을 이용할 수 있다. 로그인 앞에서 url('rest-auth/', include('rest_auth.urls')), 로 설정을 해주었기 때문에, rest-auth/login 으로 이동하면 login이 가능하다. 이메일은 필수가 아니므로 입력 안해도 된다. 성공적으로 입력이 완료되면 Token과 함께 유저 정보가 return 된다. 로그아웃 rest-auth/logout으로 이동하면 post하면 성공적으로 로그아웃 된다. #urls.py rest-auth가 제공하는 기능은 이것 말고도 다양하다. 닉네임이나 url_value, 비밀번호 등 수정 가능한 put기능도 제공하고 로그인 .. [Django] django rest-auth패키지를 이용한 유저 기능[1] - register(회원가입) social login 기능을 구현하기 위해 django기본 모델이 아닌 rest-auth 패키지를 이용하기로 했다. social 로그인을 위해 django-allauth 라이브러리를 이용해야 하는데, 내가 만든 장고 유저랑 동시에 구현하기에 어려움이 많아 기본 유저 기능도 싹 다 갈아엎었다. 나는 프론트와 데이터를 주고 받아야 하고, rest-auth라이브러리가 다양한 기능을 제공하기에 django-rest-auth 라이브러리를 설치하고 만들었다. 처음 계획은 rest-auth(회원가입 로그인)과 allauth(소셜 로그인)+simplejwt를 이용할 계획이었다. #models.py class User(AbstractUser): first_name=None last_name=None created_at.. [django] password 암호화 : make_password, check_password 다른 사람이 작업한 user model을 pull해서 다시 user작업을 하게됐다. 모델 필드가 조금 바뀐 것 말고는 크게 바뀌지 않을 거라고 생각했는데 AttributeError: 'User' object has no attribute 'set_password' 이런 오류가 생겼다. 이전에 나는 User model을 만들 때 장고의 AbstractUser model을 이용하여 만들었는데, 이 모델에는 password를 암호화 해주는 set_password가 있다. 하지만 지금은 모델을 직접 커스텀하기 때문에 이 함수를 사용할 수 없다. #models.py from django.db import models class TimestampZone(models.Model): created_at = models.. [django] django.db.utils.OperationalError: no such table 오류 django의 데이터베이스 sqlite3에 내가 만든 모델 테이블이 없어서 생기는 오류. 모델을 만들고, 앱도 등록하고, admin화면에도 모델을 등록한 뒤 makemigrations와 migrate를 했는데 계속 오류가 떴다. 전에 데이터베이스가 꼬여서 생겨 오류가 난 적이 있어서 앱의 migrations파일과 sqlite 데이터를 삭제한 뒤 다시 해도 오류가 생겼다. 이유를 찾아보니 user model에서 문제가 생긴 듯 했다. 유저 모델을 내가 직접 건드리나 보니 의존성 문젠지 뭔지... 기존의 유저 모델하고 뭔가 꼬여 내가 만든 모델이 migrate가 잘 안된 듯 하다. python manage.py makemigrations python manage.py migrate 이전에는 이런 식으로 진행.. [django] simple-jwt방식을 이용한 login, logout 기능 구현 drf세션을 통해 회원가입과 로그인은 어떻게 구현하는지 알지만 로그아웃은 모른다. 처음에는 DELETE 메소드로 구현한다고 생각했는데, 데이터는 없애면 큰일이다. 이건 유저 정보를 삭제할 때나 쓰는 거고...서치해본 결과 token을 이용한 방식을 택하기로 했다. 처음에는 payjwt였나.. 그 방식으로 하려 했는데 자꾸 권한이 없다고 나와서 simple jwt방식으로 다시 해봤다. Token 세션(쿠키)를 이용한 방식은 수업시간에 flask를 다루면서 간단하게 배웠다. 쿠키까지는 안썼지만... 정리해보면 이렇다. 1. 쿠키(cookie) 클라이언트(브라우저, 사용자)에서 관리한다. 서버와 클라이언트가 연결되면 자동으로 생성되고, 유저가 데이터를 요청하면 응답할 때 쿠키에 담아서 정보를 보낸다. 이름, .. 이전 1 다음