django - 使用 django 的基本登录时,有没有办法让 Angular 获取当前用户

标签 django angularjs

一切都在我的标题里。我想获取当前的用户信息,因为我需要它在我的 View 中根据用户的权限显示操作(删除/编辑)。

我使用 Django 制作的基本身份验证(/login/logout),我没有更改任何内容。有没有办法监听此登录/注销操作并在 Angular 上下文中检索此信息?

在 Angular 上相当新,我正在搜索一些可以帮助我朝一个或另一个方向前进的信息。

实际上,我没有用于对我的用户进行身份验证的 REST API。

我发现一些有趣的文章Best place/way to store 'global' data such as 'current logged in user'/How do I store a current user context in Angular?但现在正如我所说,我没有 AuthService,只有 Django 的基本登录/注销功能。

我使用 Django Rest 框架对我的项目进行一些操作(例如对我的一些模型进行发布/删除/读取/更新),并且它与 angularjs 一起工作得很好。但我对 Django 提供的基本身份验证很满意,所以我不想重写它。但我不知道如何收听它以及是否可能。

我知道这是一个广泛的问题,目前我没有代码可以显示,因为经过几个小时的研究后我不知道我需要从哪里开始。 如果它太宽泛,我将删除它。

谢谢

最佳答案

好的,你可以做类似的事情

示例(someUrl 是 view.py 中函数的 url): 在 Angular Controller 中添加 $http

$http({method: 'POST', url: '/someUrl'}).
  success(function(data){
      //process aswer
  });

在 djnago view.py 中:

from django.shortcuts import HttpResponse
import json

def check_login(request):
    if request.user.is_authenticated():
        return HttpResponse(json.dumps({'result': {'logged': True}, 'user':      request.user.username}),
                        content_type="application/json")
    else:
        return HttpResponse(json.dumps({'result': {'logged': False}}),
                        content_type="application/json")

关于django - 使用 django 的基本登录时,有没有办法让 Angular 获取当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21287018/

相关文章:

javascript - 如何以 Angular 访问另一个 View 的 $scope?

jquery - 在 Angular 中手动编译指令时出现内存泄漏

angularjs - 部署到生产后出现错误: Unknown provider: $$isDocumentHiddenProvider <- $$isDocumentHidden

django - Django-用户管理员-将组添加到list_display

python - 在 django 中需要帮助与 memcached 和 friend 一起进行中级/高级缓存

python - Django 模板不存在?

django - 我可以在Djangogeneric.ListView中有多个列表吗?

javascript - 将 http 请求中定义的范围变量从 Controller 传递到指令

javascript - 我需要搜索组件的指令吗?

javascript - Django 的 Jquery 数据表插件