首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django / AngularJS -用户登录后不会被重定向,即使我在settings.py中设置了LOGIN_REDIRECT_URL

Django / AngularJS -用户登录后不会被重定向,即使我在settings.py中设置了LOGIN_REDIRECT_URL
EN

Stack Overflow用户
提问于 2015-09-21 02:17:48
回答 1查看 877关注 0票数 0

根据这个链接:http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#adding-login-to-the-browsable-api

我需要在我的URLs.py中添加以下代码:

代码语言:javascript
复制
url(r'^api-auth/', include('rest_framework.urls',
                               namespace='rest_framework')),

当我添加它时,用户可以登录到“auth”URL,并使用默认的DjangoRestFramework登录界面。成功登录后,用户将被定向到"/test“,因为我的settings.py中有以下代码:

代码语言:javascript
复制
LOGIN_REDIRECT_URL = '/test'

我想让用户能够使用我自己的自定义界面登录,但是通过使用DjangoRestFramework的内置代码来登录用户,所以我创建了自己的模板。模板中的登录表单将post请求发送到

代码语言:javascript
复制
api-auth/login/

并发送用户对象(由JS中的用户名和密码组成)以及POST请求。不返回错误,所以我假设登录成功。但是,它不会重定向到任何URL (我原以为它会重定向到"/test")。

知道它为什么不重定向到任何地方,以及我如何使它重定向到"/test"?

编辑:我也在前端使用AngularJS。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 16:51:30

LOGIN_REDIRECT_URL基本上来自django.contrib.auth,所以我不会使用它的其他后端,至少不一定/自动地使用它

另外,如果您正在通过REST登录(比如从AngularJS )登录,即使REST登录成功并返回了重定向响应,也不能保证AngularJS应用程序将导航到该页面,因为登录REST是使用XHR请求(来自$http$resource等)命中的。

我使用的REST库与您略有不同,名为django-rest-auth (不是DRF附带的BrowsableAPI ),我从AngularJS进行身份验证,调用成功后,我只需将应用导航到一个新的URL

代码语言:javascript
复制
djangoAuth.login(username, password).then(function(){
    // make angularJS navigate to new page when login is successful
    // $location.path(...) or some other way
});

底线是,由于您有一个auth,您可以使用登录表单创建一个小的AngularJS页面,然后当登录成功地使用AngularJS重定向时。

值得一看

我正在使用这两个库,它们在DRF上提供REST,并可选一个AngularJS库来帮助前端

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32686426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档