Django Rest Framework / AngularJS - 用户在登录后不会被重定向到任何地方,即使我在 settings.py 中设置了 LOGIN_REDIRECT_URL
Django Rest Framework / AngularJS - Users do not get redirected anywhere after logging in, even though I have set LOGIN_REDIRECT_URL in settings.py
我需要将以下代码添加到我的 URLs.py:
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
当我添加这个时,用户可以通过转到 "api-auth" URL 并使用默认的 DjangoRestFramework 登录界面登录。成功登录后,用户将被定向到“/test”,因为我的 settings.py:
中有以下代码
LOGIN_REDIRECT_URL = '/test'
我想要一种方法让用户能够使用我自己的自定义界面登录,但是通过使用 DjangoRestFramework 的内置代码来让用户登录,所以我创建了自己的模板。模板中的登录表单发送一个 post 请求到
api-auth/login/
并发送用户对象(由 JS 中的用户名和密码组成)以及 POST 请求。没有返回错误,所以我假设登录成功。但是,它不会重定向到任何 URL(我希望它重定向到“/test”)。
知道为什么它不重定向到任何地方,以及如何让它重定向到“/test”?
编辑:我也在前端使用 AngularJS。
LOGIN_REDIRECT_URL
基本上来自 django.contrib.auth
所以除了其他身份验证后端我不会使用它,至少不会 necessarily/automatically
此外,如果您通过 REST 登录,比如从 AngularJS,即使在 REST API 登录成功并且 returns 一个 重定向响应,无法保证 AngularJS 应用程序会导航到该页面,因为登录 REST API 是使用 XHR 请求(来自 $http
或 $resource
等等)
我使用的 REST 身份验证库与您略有不同,称为 django-rest-auth
(不是 DRF 附带的 BrowsableAPI),我从 AngularJS 进行身份验证,在调用成功完成后,我只需将应用导航到新的 URL
djangoAuth.login(username, password).then(function(){
// make angularJS navigate to new page when login is successful
// $location.path(...) or some other way
});
最重要的是,因为你有一个授权 API,你可以制作一个小的 AngularJS 页面,带有登录表单,然后当登录成功时使用 AngularJS[= 重定向18=]
值得一看
我正在使用这两个旨在一起使用的库,它们提供基于 DRF 的 REST 身份验证,以及可选的 AngularJS 库来帮助前端
我需要将以下代码添加到我的 URLs.py:
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
当我添加这个时,用户可以通过转到 "api-auth" URL 并使用默认的 DjangoRestFramework 登录界面登录。成功登录后,用户将被定向到“/test”,因为我的 settings.py:
中有以下代码LOGIN_REDIRECT_URL = '/test'
我想要一种方法让用户能够使用我自己的自定义界面登录,但是通过使用 DjangoRestFramework 的内置代码来让用户登录,所以我创建了自己的模板。模板中的登录表单发送一个 post 请求到
api-auth/login/
并发送用户对象(由 JS 中的用户名和密码组成)以及 POST 请求。没有返回错误,所以我假设登录成功。但是,它不会重定向到任何 URL(我希望它重定向到“/test”)。
知道为什么它不重定向到任何地方,以及如何让它重定向到“/test”?
编辑:我也在前端使用 AngularJS。
LOGIN_REDIRECT_URL
基本上来自 django.contrib.auth
所以除了其他身份验证后端我不会使用它,至少不会 necessarily/automatically
此外,如果您通过 REST 登录,比如从 AngularJS,即使在 REST API 登录成功并且 returns 一个 重定向响应,无法保证 AngularJS 应用程序会导航到该页面,因为登录 REST API 是使用 XHR 请求(来自 $http
或 $resource
等等)
我使用的 REST 身份验证库与您略有不同,称为 django-rest-auth
(不是 DRF 附带的 BrowsableAPI),我从 AngularJS 进行身份验证,在调用成功完成后,我只需将应用导航到新的 URL
djangoAuth.login(username, password).then(function(){
// make angularJS navigate to new page when login is successful
// $location.path(...) or some other way
});
最重要的是,因为你有一个授权 API,你可以制作一个小的 AngularJS 页面,带有登录表单,然后当登录成功时使用 AngularJS[= 重定向18=]
值得一看
我正在使用这两个旨在一起使用的库,它们提供基于 DRF 的 REST 身份验证,以及可选的 AngularJS 库来帮助前端