๐Ÿ‘จโ€๐Ÿ’ป
Hamin TIL
  • Today I Learned ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป
  • ํšŒ๊ณ 
  • git
    • git_basics
      • Git 101
      • Git branch
      • Git_ignore
    • Git Book
    • ์šฐ์•„ํ•œํ˜•์ œ๋“ค
    • pull_request
  • db
    • DA
      • ๋ฐ์ดํ„ฐํ‘œ์ค€ํ™”
      • ๋ฐ์ดํ„ฐ_์š”๊ฑด๋ถ„์„
      • ์ „์‚ฌ์•„ํ‚คํ…์ฒ˜_์ดํ•ด
      • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง
    • SQL
      • SQL๊ธฐ๋ณธ๋ฐํ™œ์šฉ
        • SQLํ™œ์šฉ
          • ์ ˆ์ฐจํ˜•SQL
          • ๊ณ„์ธตํ˜•์งˆ์˜์™€์…€ํ”„์กฐ์ธ
          • DCL
          • ๊ทธ๋ฃนํ•จ์ˆ˜
          • ์œˆ๋„์šฐํ•จ์ˆ˜
          • ํ‘œ์ค€์กฐ์ธ
          • ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž
          • ์„œ๋ธŒ์ฟผ๋ฆฌ
        • SQL๊ณ ๊ธ‰ํ™œ์šฉ๋ฐํŠœ๋‹
          • ์˜ตํ‹ฐ๋งˆ์ด์ €์™€์‹คํ–‰๊ณ„ํš
          • ์กฐ์ธ์ˆ˜ํ–‰์›๋ฆฌ
          • ์ธ๋ฑ์Šค๊ธฐ๋ณธ
        • SQL๊ธฐ๋ณธ
          • ํ•จ์ˆ˜
          • ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐœ์š”
          • GROUPBY,HAVING์ ˆ
          • DDL
          • ์กฐ์ธ
          • ORDERBY์ ˆ
          • DML
          • WHERE์ ˆ
          • TCL
      • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜์ดํ•ด
        • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๊ณผ์„ฑ๋Šฅ
          • ์ •๊ทœํ™”์˜ ์„ฑ๋Šฅ
          • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ตฌ์กฐ์™€์„ฑ๋Šฅ
          • ๋ถ„์‚ฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์„ฑ๋Šฅ
          • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ
          • ๋ฐ˜์ •๊ทœํ™”์™€ ์„ฑ๋Šฅ
          • ์„ฑ๋Šฅ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜ ๊ฐœ์š”
        • ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜์ดํ•ด
          • ์‹๋ณ„์ž
          • ์†์„ฑ
          • ๊ด€๊ณ„
          • ์—”ํ„ฐํ‹ฐ
          • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ดํ•ด
    • DB
  • trouble
    • libomp
    • After macOS update, git command
    • system
  • algorithm
    • BOJ
      • ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ
      • 17825-์ฃผ์‚ฌ์œ„์œท๋†€์ด
      • 14888-์—ฐ์‚ฐ์ž๋ผ์›Œ๋„ฃ๊ธฐ
      • 14503-๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
      • 10157
      • 14502-์—ฐ๊ตฌ์†Œ
      • 18428-๊ฐ์‹œํ”ผํ•˜๊ธฐ
      • 14501
      • 18405-๊ฒฝ์Ÿ์ ์ „์—ผ
      • 14499-์ฃผ์‚ฌ์œ„๊ตด๋ฆฌ๊ธฐ
      • 16236-์•„๊ธฐ์ƒ์–ด
      • 15686-์น˜ํ‚จ๋ฐฐ๋‹ฌ
      • 19237-์–ด๋ฅธ์ƒ์–ด
      • 16234-์ธ๊ตฌ์ด๋™
      • 19236-์ฒญ์†Œ๋…„์ƒ์–ด
      • 1339-๋‹จ์–ด์ˆ˜ํ•™
      • ๋ฆฌ๋ชจ์ฝ˜
      • 18353 - ๋ณ‘์‚ฌ๋ฐฐ์น˜ํ•˜๊ธฐ
      • 18352-ํŠน์ •๊ฑฐ๋ฆฌ์˜๋„์‹œ์ฐพ๊ธฐ
      • 12100-2048
      • N-Queen
      • 3190-๋ฑ€
      • 11724
    • programmers
      • ์˜์–ด๋๋ง์ž‡๊ธฐ
      • ๊ธฐ๋‘ฅ๊ณผ ๋ณด
      • H - index
      • ์ •์ˆ˜์‚ผ๊ฐํ˜•
      • 2018 KAKAO BLIND RECRUITMENT - ์••์ถ•
      • ์‚ผ๊ฐ๋‹ฌํŒฝ์ด
      • ๊ฑฐ์Šค๋ฆ„๋ˆ
      • [1์ฐจ] ์…”ํ‹€๋ฒ„์Šค
    • data_structure
      • Queue
      • Graph
      • Stack
      • Hash table
    • implementation
      • dynamic_programming
      • sort
      • Least common multiple
      • dfs
      • dijkstra
      • bfs
      • binary_search
    • aps
      • notes
    • modules
  • python
    • requirements.txt
    • Jupyter notebook
    • 00_๋“ค์–ด๊ฐ€๊ธฐ ์ „์—
    • Python Virtual Environment
    • Python Syntax
  • django
    • Class Based View in Django
    • Model in Django
    • URL Name
    • Form and ModelForm
    • Authentication
    • Tips & Tricks
    • Optimization
    • Request and Response Objects
    • Templates
    • Variable Routing & DTL
    • Django REST API with JSON web token (JWT)
    • Intro to Django
    • Django REST Framework
    • Wrap-up
    • Image Upload
  • javascript
    • Ajax (Asynchronous Javascript And XML)
    • Document Object Model
    • Java Script 101
    • ES (ECMAscript)
  • java
    • Java 101
  • aws
    • beginning_cloud_computing_with_aws
      • 02 AWS ์ฃผ์š” ์„œ๋น„์Šค ์ดํ•ดํ•˜๊ธฐ
      • 01 ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค Cloud ๊ฐœ์š”
  • programming
    • Communication
    • CS_์šฉ์–ด์‚ฌ์ „
  • vue.js
    • 01_Vue.js_Intro
  • data_science
    • 01_๋ฐ์ดํ„ฐ์—์„œ์ธ์‚ฌ์ดํŠธ๋ฐœ๊ฒฌํ•˜๊ธฐ
    • pandas
    • 04_๋ฐ์ดํ„ฐ๋ถ„๋ฅ˜๋ชจ๋ธ
    • 02_ํ…์ŠคํŠธ๋งˆ์ด๋‹์ฒซ๊ฑธ์Œ
    • 05_์ข…ํ•ฉ์˜ˆ์ œ
    • 03_๋ฏธ๋ž˜๋ฅผ์˜ˆ์ธกํ•˜๋Š”๋ฐ์ดํ„ฐ๋ถ„์„
    • Statistics
      • ๋ชจ์ˆ˜์™€ ์ถ”์ •๋Ÿ‰
    • ํ†ต๊ณ„ํ•™๋…ธํŠธ
  • linux
    • Linux Commands
  • ide
    • VScode
    • Pycharm
  • html,css
    • HTML 101
    • CSS 101
  • colab
    • colab_101
  • ์˜์‚ฌ๊ฒฐ์ •๋‚˜๋ฌด๋ฐ๋ชจํ˜•๋น„๊ต
Powered by GitBook
On this page
  • I. ์ค€๋น„์‚ฌํ•ญ
  • 1. REST framework JWT Auth ํŒจํ‚ค์ง€ ์„ค์น˜
  • 2. settings.py ์„ค์ • ๋ณ€๊ฒฝ
  • II. ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ
  • settings.py

Was this helpful?

  1. django

Django REST API with JSON web token (JWT)

PreviousVariable Routing & DTLNextIntro to Django

Last updated 4 years ago

Was this helpful?

JWT ๋กœ ์ธ์ฆํ•˜๊ธฐ!

I. ์ค€๋น„์‚ฌํ•ญ

1. REST framework JWT Auth ํŒจํ‚ค์ง€ ์„ค์น˜

  • ํŒจํ‚ค์ง€ ๊ณต์‹๋ฌธ์„œ:

    $ pip install djangorestframework-jwt

2. settings.py ์„ค์ • ๋ณ€๊ฒฝ

(1) REST_FRAMEWORK ์„ค์ • ๋ณ€๊ฒฝ

  • REST_FRAMEWORK ์„ค์ • ๋ณ€์ˆ˜ ์•„๋ž˜์˜ ๋‚ด์šฉ ์ถ”๊ฐ€

  • authentication ๋ฐฉ์‹์„ JSONWebTokenAuthentication ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ

    REST_FRAMEWORK = {
      'DEFAULT_AUTHENTICATION_CLASSES': [
          'rest_framework_jwt.authentication.JSONWebTokenAuthentication',  # Token ์—์„œ ๊ต์ฒด
          # 'rest_framework.authentication.TokenAuthentication',
      ]
    }

(2) REST_USE_JWT ์„ค์ • ์ถ”๊ฐ€

  • DRF auth๊ฐ€ JWT๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ์„ค์ • ์ถ”๊ฐ€

    REST_USE_JWT = True

(3) JWT_AUTH ์„ค์ • ์ถ”๊ฐ€

  • JWT ๊ด€๋ จ ์ •๋ณด ์„ค์ • (์˜ˆ์‹œ)

  • import datetime
    JWT_AUTH = {
      'JWT_SECRET_KEY': SECRET_KEY,
      'JWT_ALGORITHM': 'HS256',
      'JWT_ALLOW_REFRESH': True,
          # 1์ฃผ์ผ๊ฐ„ ์œ ํšจํ•œ ํ† ํฐ
      'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7),
          # 28์ผ ๋งˆ๋‹ค ๊ฐฑ์‹ ๋จ(์œ ํšจ ๊ธฐ๊ฐ„ ์—ฐ์žฅ์‹œ)
      'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=28),
    }

II. ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ

settings.py

# DRF auth settings
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',  # Token ์—์„œ ๊ต์ฒด
        # 'rest_framework.authentication.TokenAuthentication',
    ]
}

# DRF auth๊ฐ€ JWT๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๋Š” ์„ค์ •
REST_USE_JWT = True

# JWT Token ๊ด€๋ จ ์ •๋ณด ์„ค์ •: ์–ด๋–ค ์ •๋ณด๋ฅผ ๋‹ด์•„ ๋ณด๋‚ผ์ง€
import datetime
JWT_AUTH = {
    'JWT_SECRET_KEY': SECRET_KEY,
    'JWT_ALGORITHM': 'HS256',
    'JWT_ALLOW_REFRESH': True,
        # 1์ฃผ์ผ๊ฐ„ ์œ ํšจํ•œ ํ† ํฐ
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7),
        # 28์ผ ๋งˆ๋‹ค ๊ฐฑ์‹ ๋จ(์œ ํšจ ๊ธฐ๊ฐ„ ์—ฐ์žฅ์‹œ)
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=28),
}

โ€‹

```

์ž์„ธํ•œ ์‚ฌํ•ญ์€ ๊ณต์‹๋ฌธ์„œ ์ฐธ๊ณ ()

https://jpadilla.github.io/django-rest-framework-jwt/
https://jpadilla.github.io/django-rest-framework-jwt/