일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준 #파이썬 #알고리즘 #코딩테스트
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 재귀
- java #자바 #나동빈
- 프로그래머스
- 백준 #알고리즘 #파이썬 #코딩테스트
- 백준
- BFS
- 백트랙킹
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 파이썬
- 다익스트라
- 코딩테스트
- dp
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 자바 #java
- 알고리즘
- java #자바 #동빈나
- java #자바
- 파이썬 #백준 #알고리즘 #코딩테스트
- PYTHON
- css #웹 #생활코딩
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- react #리액트 #동빈나
- DFS
- css #생활코딩 #웹
- java #자바 #생활코딩
- Dijkstra
- 투포인터
- 다이나믹프로그래밍
Archives
- Today
- Total
커리까지
[Django REST framework] 로그인 API 구현하기 본문
728x90
SMALL
로그인은
simple-jwt
라이브러리를 사용하였다.이 페이지에서는 간단하게 설치하고 설정하고 토큰을 받아오는 부분만 설명하려고 한다.
자세한 사용법 보러가기
설치하기
pip install djangorestframework-simplejwt
환경 설정
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': (
...
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
...
}
REST_USE_JWT = True
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(days=1),
'REFRESH_TOKEN_LIFETIME': timedelta(days=15),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': True,
}
오류 메시지 수정하기
- 아이디 혹은 비밀번호가 틀리면 오류를 영어로 반환해준다. 그 오류를 한글로 변경하기 위해
serializer
,view
,urls
를 수정하였다.
seriailzer
TokenObtainPairSerializer
을 상속받아default_error_messages
만 다시 선언하였다.
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
'''
TokenObtainPairSerializer 커스텀
'''
default_error_messages = {
"no_active_account": _("지정된 자격 증명에 해당하는 활성화된 사용자를 찾을 수 없습니다.")
}
view
TokenObtainPairView
을 상속받아serializer_class
를 다시 만들었던serializer
로 변경한다.
class MyTokenObtainPairView(TokenObtainPairView):
serializer_class = CustomTokenObtainPairSerializer
urls
urls.py
는 프로젝트에 있는 파일을 수정하면 된다.- 공식문서에 나와있는 아래의 코드를 다음과 같이 변경하면 된다.
# 변경 전
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
# 변경 후
from accounts.views import MyTokenObtainPairView
path('accounts/v1/token/', MyTokenObtainPairView.as_view(), name='token_obtain_pair'),
- url을 다시 만든
view
로 연결하면 된다.
API 응답 결과
- refresh : access 토큰을 다시 발행하기 위한 토큰
- access : 로그인을 위한 토큰
access 토큰 refresh API
- 로그인 할 때 얻었던
refresh
토큰을 인증하면 새로운access
토큰을 반환한다.
728x90
LIST
'django' 카테고리의 다른 글
pythonanywhere django 배포하기(+깃허브 연동)_01 (0) | 2022.08.16 |
---|---|
크롤링 후 DB에 데이터 삽입하기 (0) | 2022.08.09 |
[Django REST framework] 회원가입 API 구현하기 (0) | 2022.03.24 |
[Django REST framework] 휴대폰 인증 문자 API 구현하기 (0) | 2022.03.24 |
[Django REST framework] 휴대폰 인증 문자 모델 생성하기 (0) | 2022.03.23 |
Comments