Django Rest Framework/AngularJS-用户登录后不会被重定向到任何地方,即使我在settings.py中设置了LOGIN\u REDIRECT\u URL
根据这个链接: 我需要将以下代码添加到我的URL.py中:Django Rest Framework/AngularJS-用户登录后不会被重定向到任何地方,即使我在settings.py中设置了LOGIN\u REDIRECT\u URL,angularjs,django,django-rest-framework,django-rest-auth,Angularjs,Django,Django Rest Framework,Django Rest Auth,根据这个链接: 我需要将以下代码添加到我的URL.py中: url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 当我添加这个时,用户可以通过转到“api auth”URL并使用默认的DjangoRestFramework登录界面登录。成功登录后,用户将被定向到“/test”,因为我的settings.py中有以下代码: LOG
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”)
你知道为什么它不重定向到任何地方吗?我如何使它重定向到“/测试”
编辑:我也在前端使用AngularJS。
登录\重定向\ URL
基本上是来自django.contrib.auth
的,所以除了其他auth后端之外,我不会使用它,至少不必/自动使用它
另外,如果您通过REST登录,比如从AngularJS登录,即使REST API登录成功并返回重定向响应,也不能保证AngularJS应用程序将导航到该页面,因为登录REST API是使用XHR请求(从$http
或$resource
等)命中的
我使用的REST auth库与您稍有不同,名为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
});
底线是,因为您有一个auth API,所以可以使用登录表单创建一个小的AngularJS页面,然后在登录成功时使用AngularJS重定向
值得一看
我使用的这两个lib是要一起使用的,它们提供REST-auth-over-DRF和可选的AngularJS lib来帮助前端