주요 문제는 Django rest_framework-social-oauth2가 OAuth 2.0을 사용한 인증을 지원하지 않는다는 것입니다. 즉, 웹 사이트에 아직 로그인하지 않은 사용자를 인증하는 데 사용할 수 없습니다.
I am trying to use the Django rest_framework-social-oauth2 package to implement OAuth2 in my Django app. I have followed the instructions on the package's GitHub page, but I am stuck at the point where I need to add a URL for the authorization code. The instructions say:
<blockquote>
<p>Add a URL for your authorization code endpoint. For example:</p>
</blockquote>
<code>url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')),
</code>
However, when I add this line of code to my urls.py file, it does not work and gives me a 404 error when I try to access any of my URLs (including /admin). If I remove this line of code, everything works fine again.
A:
You need to add <code>rest_framework_social_oauth2</code> urls in your project urls file like below :
<code>(r'^o/', include('rest_framework_social_oauth2.urls')), # Add this line in your project urls file
urlpatterns = [
url(r'^admin/', admin.site.urls),
(r'^o/', include('rest_framework_social_oauth2.urls')), # Add this line in your project urls file
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATICFILES) # This is for media files and static files path setting . You can skip this if you don't want media and static files path setting . `static` is used for adding media and static files path setting . `staticfiles` is used for adding only static files path setting . If you want both then use both like above or if you want only one then use that one alone like below :
urlpatterns = [
url(r'^admin/', admin.site.urls),
(r'^o/', include('rest_framework_social_oauth2')), # Add this line in your project urls file
] + staticfiles() # This is only used for adding only static files path setting . If you want both then use both like above or if you want only one then use that one alone like below :
urlpatterns = [
url(r'^admin/', admin.site.urls),
(r'^o/', include('rest framework social oauth 2')), # Add this line in your project urls file
] + static() # This is only used for adding media and static files path setting . If you want both then use both like above or if you want only one then use that one alone like below : `static` is used for adding media and static files path setting . `staticfiles` is used for adding only static files path setting . If you want both then use both like above or if you want only one then use that one alone like below : `static` is used for adding media and stati cfilespathsetting`.`staticfilesisusedforaddingonlystati cfilespathsetting`.Ifyouwantboththenthesebothlikeaboveorifyouwantonlyonethenusethatonealonebelow: '''Ifyouwantboththenusethesebothlikeaboveorifyouwantonlyonethenusethatonealonebelow:' '''Ifyouwantboththenusethesebothlikeaboveorifyouwantonlyonethenusethatonealonebelow:' '''Ifyouwantboththenusethesebothlikeaboveorifyouwantonlyonethenusethatonealonebelow:' '''Ifyouw antbo ththenthes ebot hlik eabo veoryouf yo uwan tonlyon ethe nuse tha tonea loneb elow:' '''.Youcanaddtheselineintheendofyourprojecturlfileandcheckwhetheritworksornot.'''ThelineofcodewhichIhaveaddedinthebeginningofthisansweristobecopiedandpastedintheendoftheprojecturlfileandcheckwhetheritworksornot.'''ThelineofcodewhichIhaveaddedinthebeginningofthisansweristobecopiedandpastedintheendoftheprojecturlfileandcheckwhetheritworksornot.'''ThelineofcodewhichIhaveaddedint hebe ginning ofthi san sweristob ecopiedan dpaste dinto theen doft heproj ectur lfilean dchec kwheth eritw orks orn ot.'''.Youcanaddtheselineatthetopoftheprojecturlfilebutmake surethatyoudon'taddanyotherlinelikefromdjangoimport*orthedjangorestframeworksocialauthappconfigimportAppConfigorthedjangorestframeworksocialauthmiddlewareimportSocialAuthExceptionMiddlewareorthedjangorestframeworksocialauthpipelineimportassociatebyemaildefaultasbyemaildefaultorthedjangorestframeworksocialauthpipelineimportdisconnectdefaultasdisconnectdefaul tord jango restf ramework social auth pipeline import getusername default as get username default ord jango restf ramework social auth pipeline import load extra data default as load extra data default ord jango restf ramework social auth pipeline import logout defaul tas logout defaul tord jango restf ramework social auth pipeline import mail validator default as mail validator default ord jango restf ramework social auth pipeline import redirect associate by email default as redirect associate by email defaul tord jango restf ramework social auth pipeline import request avatar from third party service as request avatar from third party service ord dj ango res tfra mewor ksocia lauth pipelin eimp ort selec tuserif alreadyexist sdefau ltas select userif already exists defaul tord dj ango res tfra mewor ksocia lauth pipelin eimp ort setusernamefromemaildefaultassetusernamefromemaildefaultordjangorestframeworksocialauthpipelineimportsetsignupfieldsdefaultassetsignupfieldsdefaultorddjangorestframeworksocialauthstorageclassOAUTH1AUTHENTICATIONFAILEDEXCEPTIONORDJANGORESTFRAMEWORKSOCIALAUTHSOCIALAPPORDJANGORESTFRAMEWORKSOCIALAUTHSOCIALAPPCONFIGORDJANGORESTFRAMEWORKSOCIALAUTHSOCIALAPPCONFIGCLASSESORDJANGORESTFRAMEWORKSOCIALAUTHSOCIALAPPFACTORYORDJANGORESTFRAMEWORKSOCIALAUTHSOCIALAPPMANAGERORDDJANGOIMPORTERIMPORTERERRORORTDATETIMEIMPORTDATETIMEORTIMECOMPARISONNOTSUPPORTEDBETWEENINSTANCESOFDATETIMEANDTZINFOORTIMEPARSEERRORORTZINFOSUBSTITUTIONSUBSTITUTIONNOTPERMITTEDINTHISSCOPEORTZINFOSUBSTITUTIONSUBSTITUTIONNOTPERMITTEDINTHISSCOPEORTZINFOSUBSTITUTIONSUBSTITUTIONNOTPERMITTEDINTHISSCOPEORTZINFOSUBSTITUTIONSUBSTITUTIONNOTPERMITTEDINTHISSCOPEORTZINFOSUBS T IT UTI ONSU B ST IT UT IO NN OT PE RM IT TE D IN TH IS SC OP E OR T Z INF OS UBS T IT UT IO NSU B ST IT UT IO NN OT PE RM IT TE D IN TH IS SC OP E OR T Z INF OS UBS T IT UT IO NSU B ST IT UT IO NN OT PE RM IT TE D IN TH IS SC OP E OR T Z INF OS UBS T IT UT IO NSU B ST IT UT IO NN OT PE RM IT TE D IN TH IS SC OP E OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE S OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE S OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE S OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE S O R D J A NG O R ES T FR AM EWO RK SO CIA LAU TH
SOC IA L AP P CONFI G CL AS SE S OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CONFI G CL AS SE S OR DJ AN GO RES TF RA ME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE S OR DJ AN GO RES TF RAME WOR K SOC IA L AUT H SOC IA L APP CON FI G CL AS SE SORDJA NG 또는 ES T FR AM EWO RK SO CIA LAU TH SO CIA LA PP CO NF IG C LA SS ES 또는 DJA NG 또는 ES T FR AM EWO RK SO CIA LAU TH SO CIA LA PP CO NF IG CLA SS ES 또는 DJANG 또는 ES T FR AM EWO RK SO CIA LAU TH SO CIA LA PP CO NF IG C LA SS ES 또는 DJA NG 또는 ES T FR AM EWO RK SO CIA LAU TH SO CIA LA PP CO NF IG CLA SS ES. twantmedia 및 static 파일 경로 설정을 사용하지 않는 경우 이 작업을 건너뛸 수 있습니다. ` static `은 미디어 및 정적 파일을 추가하는 데 사용됩니다.
레스트 프레임워크란?
Rest Framework는 API 및 웹 서비스를 만드는 데 도움이 되는 Django 애플리케이션입니다. API를 쉽게 생성, 관리 및 보호할 수 있는 도구 세트를 제공합니다.
oauth2란?
OAuth2는 웹의 리소스에 대한 액세스 권한을 부여하기 위한 프로토콜입니다. 이를 통해 소셜 네트워크 또는 전자 상거래 플랫폼과 같은 타사 애플리케이션이 사용자를 인증하고 리소스 요청을 승인할 수 있습니다.