"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Django 마스터하기: 처음부터 안전한 사용자 인증 API 구축

Django 마스터하기: 처음부터 안전한 사용자 인증 API 구축

2024-08-31에 게시됨
검색:385

``## 4일차
#100daysofMiva 코딩 챌린지가 벌써 4일이 지났습니다. ???

? Django에 대해 알아보세요: 처음부터 안전한 사용자 인증 API 구축하기!

Django 기술을 다음 단계로 발전시킬 준비가 되셨나요? ? 이 튜토리얼에서는 Django를 사용하여 강력한 사용자 인증 API를 만드는 과정을 안내하겠습니다. 숙련된 개발자이든 이제 막 시작하는 개발자이든 이 단계별 가이드는 사용자 등록, 로그인 및 토큰 기반 인증을 설정하는 과정을 안내합니다.

이 세션이 끝나면 :

방법을 확실히 이해하게 될 것입니다.
  1. Django 프로젝트 설정 및 필수 패키지 구성
  2. 사용자 데이터에 대한 직렬 변환기 생성 및 사용자 정의
  3. 사용자 등록 및 인증을 처리하는 뷰 구축
  4. 보안 API 액세스를 위한 토큰 기반 인증 구현
  5. 빈 캔버스를 강력한 인증 시스템으로 바꾸고 Django 여정에서 새로운 가능성을 열어가는 과정에 참여하세요! ??

코딩을 시작해 보세요! ?✨

Mastering Django: Building a Secure User Authentication API from Scratch

1단계: Django 환경 설정:

이렇게 하려면 python이 설치되어 있어야 합니다. 다음을 실행하여 Python설치되었는지 확인하세요.
macOS/Linux:
Python은 종종 사전 설치되어 있습니다. 다음을 실행하여 확인할 수 있습니다:
Mastering Django: Building a Secure User Authentication API from Scratch
또는
Mastering Django: Building a Secure User Authentication API from Scratch
필요한 경우 Homebrew(macOS) 또는 패키지 관리자(Linux)를 통해 Python을 설치합니다.
Mastering Django: Building a Secure User Authentication API from Scratch

윈도우:

  • python.org에서 Python을 다운로드하고 설치합니다.
  • 설치 중에 Python을 PATH에 추가하려면 확인란을 선택했는지 확인하세요.

2단계. 가상 환경 설정:

macOS/Linux:

가상 환경 생성 및 활성화:

Mastering Django: Building a Secure User Authentication API from Scratch

윈도우:

가상 환경 생성 및 활성화:

Mastering Django: Building a Secure User Authentication API from Scratch

3단계. Django 및 패키지 설치

이제 패키지가 없는 프레임워크는 무엇입니까?...필요한 패키지를 설치해 보겠습니다.?
가상 환경이 활성화되면 Django 및 추가 패키지를 설치하는 명령은 모든 운영 체제에서 동일합니다:

Mastering Django: Building a Secure User Authentication API from Scratch
설명:
`

  1. djangorestframework: Django로 웹 API를 구축하기 위한 강력하고 유연한 툴킷입니다.
  2. djangorestframework-simplejwt: 이 패키지는 보안 API 인증에 일반적으로 사용되는 JWT(JSON Web Token) 인증을 제공합니다.

4단계. Django 프로젝트 생성 및 구성

맥OS/리눅스/윈도우:

Django 프로젝트 및 앱 만들기:

Mastering Django: Building a Secure User Authentication API from Scratch
필요한 사항을 단순화하겠습니다.

  1. startproject1: 이 명령은 새 Django 프로젝트를 만듭니다. 프로젝트는 데이터베이스 구성, Django 관련 옵션, 애플리케이션 관련 설정을 포함하여 Django 인스턴스에 대한 설정 모음입니다.
  2. startapp: 프로젝트 내에 새 앱이 생성됩니다. 앱은 특정 기능(예: 사용자 관리)을 처리하는 프로젝트의 구성 요소입니다.

5단계. 프로젝트 설정 업데이트

모든 OS:

앱과 설치된 패키지를 포함하도록 settings.py를 수정하세요.
파일: auth_project/settings.py

Mastering Django: Building a Secure User Authentication API from Scratch

설명해볼까요?:

INSTALLED_APPS: 앱과 타사 패키지를 등록하는 곳입니다. 여기에는 API 기능을 위한 Rest_framework, JWT 인증을 위한 Rest_framework_simplejwt, 사용자 관련 작업 관리를 위한 사용자(생성한 앱)를 추가합니다.

모든 단계를 한꺼번에 알지 못해도 괜찮습니다. 연습만 하면 제대로 할 수 있을 것입니다.

꼭 따라오셨으면 좋겠습니다...어려운 게 아니라 복잡한 걸까요?
(효과가 있었는지 모르겠습니다.)...

계속...?
여기에서 계속 지켜봐 주시겠습니까?

6단계. 직렬 변환기 생성

파일: users/serializers.py

Mastering Django: Building a Secure User Authentication API from Scratch

설명:

  1. **직렬 변환기**: Django REST Framework에서 직렬 변환기는 복잡한 데이터 유형(예: Django 모델)을 JSON으로 변환하는 데 사용되며 그 반대도 마찬가지입니다.
  2. **RegisterSerializer**: 이 사용자 정의 직렬 변환기는 사용자 등록을 처리합니다. 여기에는 사용자 이름, 비밀번호, 이메일 등과 같은 필드가 포함됩니다.
  3. **validate_password**: 비밀번호가 특정 보안 기준을 충족하는지 확인합니다.
  4. **검증 방법**: 두 개의 비밀번호 필드가 일치하는지 확인하는 사용자 지정 검증입니다.
  5. **create** 메소드: 이 메소드는 새로운 사용자를 생성하고 저장하는 역할을 담당합니다.

7단계: 뷰 생성

파일: users/views.py

Mastering Django: Building a Secure User Authentication API from Scratch
설명:

  1. **뷰**: Django에서 뷰는 사용자 요청 처리를 위한 로직을 처리합니다.
  2. **RegisterView**: 이 보기는 사용자 등록을 처리합니다.
  3. **CreateAPIView**: 새 레코드 생성을 처리하기 위한 기본 제공 뷰입니다. 여기서는 새로운 사용자를 생성하는 데 사용됩니다.
  4. **permission_classes**: AllowAny는 등록에 필요한 인증되지 않은 사용자를 포함하여 누구나 이 엔드포인트에 액세스할 수 있음을 의미합니다.

8단계: URL 설정

파일: users/urls.py
이 코드는 앱의 URL

에 작성되어 있습니다.

Mastering Django: Building a Secure User Authentication API from Scratch

설명:

URL 패턴: 뷰에 매핑되는 경로를 정의합니다.
**등록/**: 이 URL은 사용자 등록을 처리합니다.

그런 다음 프로젝트 파일로 이동합니다: **auth_project/urls.py**
이것을 입력하세요...?

Mastering Django: Building a Secure User Authentication API from Scratch

설명:

  1. **include('users.urls')**: 여기에는 사용자 앱의 URL이 포함됩니다.
  2. JWT 조회수: TokenObtainPairView: 이 보기는 액세스 및 새로 고침 토큰 쌍을 반환합니다. TokenRefreshView: 이 보기를 사용하면 클라이언트가 새로 고침 토큰을 사용하여 액세스 토큰을 새로 고칠 수 있습니다.
  3. **TokenObtainPairView**: 이 보기는 액세스 및 새로 고침 토큰 쌍을 반환합니다.
  4. **TokenRefreshView**: 이 보기를 사용하면 클라이언트가 새로 고침 토큰을 사용하여 액세스 토큰을 새로 고칠 수 있습니다.

다음은 여기서 푹 쉬면 되지 않을까..여기서부터 부담은 없지 ㅎㅎ..

9단계: 마이그레이션 실행

명령:

Mastering Django: Building a Secure User Authentication API from Scratch

이 작업의 기능/목적은 프로젝트에서 정의한 모델 및 필드를 기반으로 데이터베이스 스키마에 변경 사항을 적용하는 것입니다. 위에서 우리가 조율한 것들은요?

즉, 프로젝트를 최신 상태로 유지합니다.

10단계: 서버 실행 및 테스트

명령:

Mastering Django: Building a Secure User Authentication API from Scratch

이 명령은 Django 개발 서버를 시작하여 프로젝트를 로컬에서 액세스할 수 있게 만듭니다. (귀하의 로컬 포트)

이제 지금까지 수행한 작업을 살펴보겠습니다...

Postman 또는 cURL로 테스트(IDE에서 이 확장 프로그램을 다운로드할 수 있음)

Postman 사용

  1. Postman(또는 원하는 API 테스트 도구)을 엽니다.

  2. 새 요청 설정

  • 1. URL: http://127.0.0.1:8000/api/auth/register/
  • 2. 방법: POST
  1. 본문 탭에서 원시 및 JSON 형식을 선택합니다.

  2. 다음 JSON 데이터를 입력하세요:
    몸:

Mastering Django: Building a Secure User Authentication API from Scratch

  1. 보내기를 클릭하세요.

이 부분에서 Django-Rest Framework는 친숙한 사용자 인터페이스를 갖추고 있어 다른 프레임워크보다 여기에서 탐색하기가 더 쉽습니다.

성공하면 HTTP 상태 코드 201 생성됨이 포함된 응답과 사용자 데이터가 포함된 JSON 응답을 받아야 합니다.

토큰 인증 끝점 테스트

JWT 인증이 작동하는지 확인하려면 토큰 엔드포인트를 테스트하세요.

Postman 사용:

  1. 새 요청 설정: 방법: POST URL: http://127.0.0.1:8000/api/token/
  2. 본문 탭에서 원시 및 JSON 형식을 선택합니다.
  3. 다음 JSON 데이터를 입력하세요.

Mastering Django: Building a Secure User Authentication API from Scratch

4, 보내기를 클릭하세요.
액세스 및 새로 고침 토큰이 포함된 JSON 응답을 받아야 합니다.

Mastering Django: Building a Secure User Authentication API from Scratch

**

문제 해결 팁

**
서버가 시작되지 않음: 올바른 디렉토리에 있고 가상 환경을 활성화했는지 확인하세요.
엔드포인트 오류: URL 경로를 다시 확인하고 Django 앱이 URL로 올바르게 설정되었는지 확인하세요.
잘못된 응답: API 엔드포인트와 직렬 변환기가 올바르게 구성되었는지 확인하세요.
다음 단계를 수행하면 Django 개발 서버를 성공적으로 실행하고, 등록 엔드포인트를 테스트하고, 토큰 기반 인증을 확인할 수 있습니다.

릴리스 선언문 이 기사는 https://dev.to/mayowakalejaiye/mastering-django-building-a-secure-user-authentication-api-from-scratch-4ma3?1에서 복제됩니다. 침해가 있는 경우, Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3