{"id":640,"date":"2025-04-08T17:57:56","date_gmt":"2025-04-08T08:57:56","guid":{"rendered":"http:\/\/www.bluebee.co.kr\/?p=640"},"modified":"2025-04-08T18:17:08","modified_gmt":"2025-04-08T09:17:08","slug":"django-oauth-%ec%84%9c%eb%b2%84-%ec%85%8b%ed%8c%85-%eb%a9%94%eb%aa%a8","status":"publish","type":"post","link":"http:\/\/www.bluebee.co.kr\/?p=640","title":{"rendered":"Django OAuth \uc11c\ubc84 \uc14b\ud305 \uba54\ubaa8"},"content":{"rendered":"\n<p>\ub9ac\ud3ec\ud2b8 api \uc81c\uacf5\uc5d0 \uc788\uc5b4\uc11c OAuth\uac00 \ud544\uc694\ud55c \uc0c1\ud669\uc774 \ubc1c\uc0dd\ud588\ub2e4.<\/p>\n\n\n\n<p>\uc9c4\ud589\uc0ac\ud56d\uc744 \uba54\ubaa8\ud558\uae30\ub85c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc7a5\uace0 \uc124\uce58\n#python3 -m pip install --upgrade pip\n#pip install django==5.2\n#\uc0ad\uc81c\ub294 pip uninstall django\n\n#python3 -m django --version\n#5.2\n#django-admin startproject oauth\n#cd oauth\n#python3 manage.py startapp sign\n#python3 manage.py startapp user\n\noauth\/sign\/serializers.py \uc791\uc131\noauth\/sign\/permissions.py \uc791\uc131\noauth\/sign\/views.py \uc218\uc815<\/code><\/pre>\n\n\n\n<p>oauth\/urls.py \uc218\uc815<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.contrib import admin\nfrom django.urls import path, include\nfrom . import views\n\nurlpatterns = &#91;\n    path('admin\/', admin.site.urls),\n    path('o\/', include('oauth2_provider.urls', namespace='oauth2_provider')),\n    path('api\/tokens\/', views.token_list, name='token-list'),\n    path('api\/tokens\/&lt;str:token>\/', views.token_detail, name='token-detail'),\n]<\/code><\/pre>\n\n\n\n<p>oauth\/sign\/urls.py \uc0dd\uc131<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.conf.urls import url\nfrom sign import views\n\nurlpatterns = &#91;\n    url(r'^$', views.SignUp.as_view(), name=\"sign_up\"),\n]<\/code><\/pre>\n\n\n\n<p>\uac00\uc0c1\ud658\uacbd \uc0dd\uc131<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#python3 -m venv venv\n#source venv\/Scripts\/activate\n\n\uac00\uc0c1\ud658\uacbd \uc885\ub8cc\nvenv) deactivate<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub9ac\ud3ec\ud2b8 api \uc81c\uacf5\uc5d0 \uc788\uc5b4\uc11c OAuth\uac00 \ud544\uc694\ud55c \uc0c1\ud669\uc774 \ubc1c\uc0dd\ud588\ub2e4. \uc9c4\ud589\uc0ac\ud56d\uc744 \uba54\ubaa8\ud558\uae30\ub85c \ud55c\ub2e4. oauth\/urls.py \uc218\uc815 oauth\/sign\/urls.py \uc0dd\uc131 \uac00\uc0c1\ud658\uacbd \uc0dd\uc131<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"class_list":["post-640","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=640"}],"version-history":[{"count":7,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/640\/revisions"}],"predecessor-version":[{"id":652,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/640\/revisions\/652"}],"wp:attachment":[{"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=640"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.bluebee.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}