我希望能够通过社交媒体登录。按照所有步骤(注册的应用程序),登录正常,但由于django无法识别我的网址而无法通过。
这是我对api端点的调用
facebookLogin(token: string):any{
return this.http.post(environment.api + 'fblogin/', {token:this.token}).subscribe(
(onSucess:any) => {
localStorage.setItem(this._tokenKey, onSucess.token)
}, onFail => {
console.log(onFail)
}
);
}
但是出现以下错误:POSThttp://127.0.0.1:8000/api/fblogin/404(未找到)。由此我知道我的Django URL出了点问题。确实进入http://127.0.0.1:8000/api/fblogin/给了我一个页面未找到错误,并且它试图匹配其他几个URL。
但是我看不到我的网址出了什么问题
我的应用程序中的URL
from django.conf.urls import url, include
from rest_framework import routers
from . import views
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
from social_django import urls
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'fblogin/', include(urls)),
url(r'auth/', obtain_jwt_token),
url(r'refresh/', refresh_jwt_token)
]
我的项目中的URL
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('Backend.api.urls'))
]
其他http://127.0.0.1:8000/api/users/之类的URL也可以。我也觉得我的所有设置都井井有条。
我建议我可能是因为您定义URL的顺序和方式。py请尝试以下格式
from django.conf.urls import url, include
from rest_framework import routers
from . import views
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
from social_django import urls
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
urlpatterns = [
url(r'^fblogin/', include(urls)),
url(r'^auth/', obtain_jwt_token),
url(r'^refresh/', refresh_jwt_token)
] + router.urls