首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django无法使用rest-auth/ user /获取当前用户

Django是一个强大的Python Web框架,用于快速开发高质量的Web应用程序。它提供了许多内置功能和库,使开发人员能够轻松构建可扩展且安全的应用程序。

在Django中,rest-auth是一个第三方库,用于处理用户认证和授权的RESTful API。它提供了一组API端点,用于用户注册、登录、注销等操作。而user是Django内置的用户模型,用于管理用户的身份验证和权限。

要在Django中使用rest-auth和user获取当前用户,可以按照以下步骤进行操作:

  1. 安装rest-auth库:在项目的虚拟环境中运行以下命令来安装rest-auth库。
代码语言:txt
复制
pip install django-rest-auth
  1. 配置rest-auth:在Django项目的settings.py文件中,添加rest-auth到INSTALLED_APPS和REST_FRAMEWORK的配置中。
代码语言:txt
复制
INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_auth',
    ...
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
}
  1. 创建API视图:在Django项目中创建一个API视图,用于获取当前用户的信息。可以使用Django的装饰器@api_view@permission_classes来限制访问权限。
代码语言:txt
复制
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response

@api_view(['GET'])
@permission_classes([IsAuthenticated])
def current_user(request):
    user = request.user
    # 处理用户信息
    return Response({'username': user.username, 'email': user.email})
  1. 配置URL路由:在Django项目的urls.py文件中,添加一个URL路由,将API视图映射到相应的URL路径。
代码语言:txt
复制
from django.urls import path
from .views import current_user

urlpatterns = [
    ...
    path('api/current_user/', current_user, name='current_user'),
    ...
]

现在,你可以通过访问/api/current_user/路径来获取当前用户的信息。只有经过身份验证的用户才能成功访问该API端点。

推荐的腾讯云相关产品:腾讯云提供了一系列云计算产品,适用于各种应用场景。以下是一些与Django开发相关的腾讯云产品:

  1. 云服务器(CVM):提供可扩展的虚拟服务器实例,用于部署和运行Django应用程序。
  • 云数据库MySQL版(CDB):提供高性能、可扩展的MySQL数据库服务,用于存储和管理Django应用程序的数据。
  • 云存储(COS):提供安全可靠的对象存储服务,用于存储和管理Django应用程序中的静态文件、媒体文件等。

请注意,以上仅是腾讯云的一些产品示例,你可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django如何使用jwt获取用户信息

HTTP请求是无状态的,我们通常会使用cookie或session对其进行状态保持,cookie存储在客户端,容易被用户误删,安全性不高,session存储在服务端,在服务器集群情况下需要解决session...token值判断用户信息、过期时间等信息,在使用期间内不可能取消令牌或更改令牌权限。...='app.User' # 指定使用APP中的 model User进行验证 在django中,我们用内置的User表做登录功能 from rest_framework_jwt.views import...user_id = token_user['user_id'] # 获取用户id 这个方法不用在前端封装getitem token 或者从前端传过来token然后获取 .vue var...) user_id = toke_user['user_id'] def get(self,request):     data = request.query_params # 获取get

3.2K10

使用腾讯地图在公众号网页里获取用户当前位置

最近有做一个项目,需要根据用户当前位置自动填写省市区,然后心里有选择:H5原生定位、百度地图、腾讯地图和高德地图。 既然是做公众号,还是比较偏向用腾讯自家的地图--腾讯地图。...主要怕腾讯那一天搞什么限制,限制使用其它地图,倒是定位功能无法正常使用。 觉得多虑的话,可以想想淘宝抖音为什么在微信打不开。...官方文档:https://lbs.qq.com/tool/component-geolocation.html 第一次尝试根据GPS定位,如果失败(用户拒绝了获取精确位置),则尝试根据IP地址定位。...function () { console.info('获取精确定位失败,尝试通过IP地址获取位置信息'); geolocation.getIpLocation...function () { console.info('尝试通过IP地址获取位置信息失败'); alert("您的当前位置获取失败

2.5K30

Python 格式化字符串漏洞(Django为例)

我的思路是这样,首先我们暂时无法通过格式化字符串来执行代码,但我们可以利用格式化字符串中的“获取对象属性”、“获取数组数值”等方法来寻找、取得一些敏感信息。...输出了当前已登陆用户哈希过的密码。...看一下为什么会出现这样的问题:user当前上下文中仅有的一个变量,也就是format函数传入的user=request.userDjango中request.user当前用户对象,这个对象包含一个属性...经过翻找,我发现Django自带的应用“admin”(也就是Django自带的后台)的models.py中导入了当前网站的配置文件: ?...Jinja2在防御SSTI(模板注入漏洞)时引入了沙盒机制,也就是说即使模板引擎被用户所控制,其也无法绕过沙盒执行代码或者获取敏感信息。

1.5K20

Django 用户认证系统使用总结

Django用户认证系统使用总结 测试环境 Win7 Django 1.11 使用Django认证系统 本文按默认配置讲解Django认证系统的用法。...如果默认的认证无法满足项目,Django提供了对认证系统的扩展与定制。 Django身份验证同时提供身份验证和授权,通常称为身份验证系统,因为这些特性有些耦合。...,可以对它的属性进行修改 >>>user.last_name='Lennon' >>>user.save() 如果已经安装了Django admin应用,可以直接创建用户 创建超级用户 使用createsuperuser... user_name 如果不提供user_name,则默认修改当前系统用户的密码....{%endif%} 如果未使用RequestContext,则模板变量不可获取,比如上述的 {{ user }} Permissions 略 Managing users in the admin

1.8K10

关于python开发CRM系统

角色管理 权限管理 动态菜单 在线交作业 关于表结构 后续完整后补充 关于django的admin 知识点回顾: 使用django中的admin的方法: 1、models.py中创建好表的类 2、执行...=32) 这样就可以调用django中admin的认证 在views.py函数中使用admin的认证 调用django中admin的认证功能需要导入如下模块,authenticate用于认证,login...对象 #如果想要获取具体的用户名,可以user.userprofile.name得到 #...返回的其实是一个用户对象 , 如果想要获取具体的用户名字则需要通过user.userprofile.name, 关于动态菜单...,就是选中某菜单的时候给一个背景色,即动态添加active 这里可以根据url来设置,因为每个菜单的都是一个a标签而a标签的href属性和当前的页面的url是相同的 通过通过在js中获取当前的url也就是

3.2K90

Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09

拿到当前登录的用户对象(未登录会报错,AnonymousUser 匿名用户) # 获取用户对象 request.user # 用户登录了直接获取用户对象,用户没登录获取到 AnonymousUser...匿名用户 # 判断当前用户是否登录,未登录(AnonymousUser)会返回 False,其他情况下返回 True request.user.is_authenticated # 验证用户密码是否正确...# 将用户状态记录到session中 """只要执行了这一句话 你就可以在后端任意位置通过request.user获取当前用户对象""" return render(request...(old_password) # 将获取用户密码 自动加密 然后去数据库中对比当前用户的密码是否一致 if is_right: print(is_right)...其他配置 # 告诉 django 不再使用 auth 默认的表 而是使用你自定义的表 AUTH_USER_MODEL = 'app01.Userinfo' # '应用名.模型表类名' # ...

1.4K50

Python Django开发 经验技巧总结(一)

的auto_now、auto_now_add 7.获取已登录用户的名字 8.数据库表中属性的自增/自减操作 9.执行原始sql语句 10.分页显示数据 1.前后台的数据传递 view -> HTML:使用...value是显示的内容,并且后端提交后也将此作为值,其中name是后端获取时所用的如后端使用 select = request.POST['select']获取这个单选按钮的value,另外也可以用select...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带的admin管理器,那么该字段在admin...7.获取已登录用户的名字 在 views里取值是request.user.username,在模板页面取值是{{request.user}},判断是否通过验证是{% if request.user.is_authenticated...() 执行时,让数据库去根据数据库当前的值进行更新操作; 一旦当前对象被存储时,我们必须重新加载当前对象以获取当前数据库中最新的值。

1.3K10

Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

settings源码剖析及模仿使用 Django settings源码剖析 Django有两个配置文件,一个是用户可以看到的settings文件,另一个是内部的全局的配置文件,这两个配置文件的执行方式是如果用户配置了就用用户配置的...它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据。...你就可以通过request.user获取当前登录的用户对象 判断当前用户是否登录 request.user.is_authenticated() 校验原密码 request.user.check_password...判断当前用户是否登录 判断当前用户是否登录(发送的当前请求是否已经登录) def my_view(request): if not request.user.is_authenticated():...当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

84910

cookie、session和中间件

如果在浏览器端如果禁止cookie我们将无法登录需要用户登录的网站这是服务端识别到浏览器禁用了cookie而做的优化。 Google浏览器查看cookie ?...@wraps(func) def inner(request, *args, **kwargs): next_url = request.get_full_path()#获取用户当前页面的...这里需要说明的是Django在后端没有专门用于存储cookie的表,但是同一用户在不同的浏览器登录产生的cookie仍是不一样的,只是cookie加密的时候需要使用用户信息,(如果只用字符串进行加密密钥会比较短...),如果使用用户信息(set_signed_cookie)会得到第一条加密信息。...# 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir() 4.

1.2K20

Django 权限

因此需要权限管理系统进行权限检测,让经过授权的用户可以正常合法的使用已授权的功能,而对那些未授权的非法用户拒之门外。...Django 权限机制 Django 权限机制能够约束用户行为,控制页面的显示内容,也能使 API 更加安全和灵活;用好权限机制,能让系统更加强大和健壮 Djangouser, group 和...permission 总是与 model 对应的,如果一个 object 不是 model 的实例,我们无法为它创建/分配权限 权限应用 Permission User Permission Group...(username="nick")     #获取用户对象 In [7]: user.user_permissions.all()                        # 查看用户权限 Out...()                        #查看用户当前权限 Out[13]: [] In [18]: user.user_permissions.add

1.1K10

python测试开发django-61.权限认证(permission)

前言 用户登录后,才有操作当前用户的权限,不能操作其它人的用户,这就是需要用到权限认证,要不然你登录自己的用户,去操作别人用户的相关数据,就很危险了。...当收到的请求通过身份验证时: request.user属性会设置为django.contrib.auth.User对象,即我们登录的对象(我们定义用户继承于User)。...django rest framework权限和认证有四种方式: BasicAuthentication 此身份验证方案使用HTTP基本身份验证,根据用户用户名和密码进行签名。...Unauthorized 权限级别也有四种 AllowAny 允许所有用户 IsAuthenticated 表示仅仅允许身份验证通过的用户访问,其他用户无法访问。...IsAdminUser 表示仅仅允许管理员用户访问,普通用户无法访问。 IsAuthenticatedOrReadOnly 表示仅仅允许身份验证通过的用户访问,或者只允许只读请求(GET请求)访问。

1.9K40

Django权限系统auth模块详解

认证系统auth  auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。auth可以和admin模块配合使用, 快速建立网站的管理系统。...对象,以及一个认证了的User对象 此函数使用django的session框架给某个已认证的用户附加上session id等信息。...当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。...username=xxx)去获取一个用户User对象,用try except实现,如果用户不存在则抛出User.DoesNotExist异常,在这个异常中进行创建用户的操作。...auth系统无法提供对象级的权限控制, 即检查用户是否对数据表中某条记录拥有增改删的权限。如果需要对象级权限控制可以使用django-guardian.

1.5K20

Django权限机制的实现

对group也一样,如果将B2的可写权限赋予group C,则隶属于group C的所有用户均可以修改B2,但无法修改B1和B3。...perms存储当前用户的所有权限,权限检查可以参考下面例子: {% if perms.main.add_page %} <a href="#" class...user_obj = User.objects.get(name='lishi') #可以使用dir来看有哪些方法可以用 >>> dir(user_obj) #获取用户的所有权限 >>> user_obj.get_all_permissions...第三步: 定义权限验证方法, 逻辑是这样,请求访问学员列表, 先获取url地址,根据url地址得到urlname, 再获取请求方法和参数,然后使用urlname, 请求方法,参数列表到数据库中查询,能查询到之后说明这个权限存在...;然后再使用request.user.has_perm()来判断该用户是否具有该权限。

1.1K10

学习猿地 python教程 django教程10 Django中的用户认证

# Django中的用户认证 Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie的用户会话。...简而言之,身份验证验证用户是他们自称的用户,并且授权决定允许经过身份验证的用户执行的操作。这里使用术语认证来指代这两个任务。...import login,logout 用户登陆     login(request, user) 用户退出     logout(request) ``` 获取用户及权限信息 ``` # 获取当前会话的用户对象...    obj = get_user(request) # 获取当前用户拥有的所有权限     pms = obj.get_all_permissions() # # 检查当前用户是否具有 perm...{ { request.user.username } } 获取当前会话用户权限 https://docs.djangoproject.com/en/1.11/topics/auth/default/

1.1K10

学习猿地 python教程 django教程10 Django中的用户认证

# Django中的用户认证 Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie的用户会话。...简而言之,身份验证验证用户是他们自称的用户,并且授权决定允许经过身份验证的用户执行的操作。这里使用术语认证来指代这两个任务。...import login,logout 用户登陆 login(request, user) 用户退出 logout(request) ``` 获取用户及权限信息 ``` # 获取当前会话的用户对象...obj = get_user(request) # 获取当前用户拥有的所有权限 pms = obj.get_all_permissions() # # 检查当前用户是否具有 perm...{ { request.user.username } } 获取当前会话用户权限 https://docs.djangoproject.com/en/1.11/topics/auth/default/

91820
领券