
각각의 쓸 앱들에 맞춰서 루트 urls.py에 써주는 것이 좋다.
User urls.py

root urls.py => user urls.py
회원가입 하기 위한 api이다.
이전프로젝트에서도 비밀번호나 이메일의 타당성 검사는 하였었는데 이걸 정규표현식으로 쓰니까 훨씬 간편해졌다.
그리고 비밀번호의 보안성을 올리기 위해서 bcrypt을 활용하였다.

회원가입에 성공하면 이렇게 토큰값이 나오게된다. 이 토큰값은 로그인할떄 쓰이게 될것이다.

로그인에 성공할때는 이렇게 나올 것이다.

소셜로그인(1,2차프로젝트때 내가 하지 못했던 것)
해당 로그인 기능은 OAuth 2.0을 지원합니다. 다음은 카카오 플랫폼 서비스에서 제공하는 가장 일반적인 OAuth 인증의 과정입니다.
1. 사용자는 카카오계정으로 로그인 버튼을 클릭합니다.
2. 카카오톡 앱에 연결된 카카오계정의 자격정보(Credentials)를 통해 사용자를 인식합니다.
3. 자격정보가 올바르다면 사용자(Resource Owner)로부터 접근 자원에 대한 동의/허가를 얻습니다.
4. 위 3까지 성공적으로 수행되었다면 인증 코드(Authorization Code)가 발급됩니다. 해당 인증 코드는 Redirection URI를 기반으로 Third 앱에 전달됩니다.
5. Third 앱에서는 전달받은 인증 코드를 기반으로 사용자 토큰(Access Token, Refresh Token)을 요청하고 얻게 됩니다.
일단 카카오에 들어가서 서비스에서 사용자들에게 받고 싶은 정보를 설정한다.
프론트: 프론트엔드에서는 로그인 버튼 클릭 시 먼저 사용자의 동의를 거쳐 토큰을 받을 수 있는 코드를 받아와야한다. 이 코드를 가지고 실제로 API를 호출할 수 있는 사용자 토큰(Access Token, Refresh Token)을 카카오로부터 받아올 수 있다.
class KakaoSignInView(View):
def get(self, request):
client_id = KAKAO_KEY
redirect_uri = "http://127.0.0.1:8000/account/sign-in/kakao/callback"
return redirect(
f"https://kauth.kakao.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code"
)
이렇게 하면은...

이렇게 된다.