본문 바로가기

멋사 10기 졸업 프로젝트/정리

(4)
[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] simple-jwt방식을 이용한 login, logout 기능 구현 drf세션을 통해 회원가입과 로그인은 어떻게 구현하는지 알지만 로그아웃은 모른다. 처음에는 DELETE 메소드로 구현한다고 생각했는데, 데이터는 없애면 큰일이다. 이건 유저 정보를 삭제할 때나 쓰는 거고...서치해본 결과 token을 이용한 방식을 택하기로 했다. 처음에는 payjwt였나.. 그 방식으로 하려 했는데 자꾸 권한이 없다고 나와서 simple jwt방식으로 다시 해봤다. Token 세션(쿠키)를 이용한 방식은 수업시간에 flask를 다루면서 간단하게 배웠다. 쿠키까지는 안썼지만... 정리해보면 이렇다. 1. 쿠키(cookie) 클라이언트(브라우저, 사용자)에서 관리한다. 서버와 클라이언트가 연결되면 자동으로 생성되고, 유저가 데이터를 요청하면 응답할 때 쿠키에 담아서 정보를 보낸다. 이름, ..