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

使用Django drf和simple jwt获取当前用户

Django是一个基于Python的开发框架,而DRF(Django REST Framework)是Django的一个扩展,用于构建RESTful API。Simple JWT是一个用于在Django中实现JSON Web Token(JWT)身份验证的库。

使用Django DRF和Simple JWT获取当前用户的步骤如下:

  1. 首先,确保你已经安装了Django和DRF,并在你的Django项目中配置了DRF。
  2. 安装Simple JWT库,可以通过以下命令使用pip进行安装:
  3. 安装Simple JWT库,可以通过以下命令使用pip进行安装:
  4. 在Django项目的settings.py文件中添加以下配置:
  5. 在Django项目的settings.py文件中添加以下配置:
  6. 创建一个用于获取JWT令牌的视图,可以在views.py文件中创建一个类似如下的视图:
  7. 创建一个用于获取JWT令牌的视图,可以在views.py文件中创建一个类似如下的视图:
  8. 这里的MyTokenObtainPairSerializer是你自定义的用于序列化和验证用户凭证的序列化器。
  9. 在urls.py文件中添加以下路由配置:
  10. 在urls.py文件中添加以下路由配置:
  11. 这里的api/token/是你定义的获取JWT令牌的URL路径。
  12. 现在,你可以通过向api/token/发送POST请求,提供有效的用户名和密码来获取JWT令牌。例如,可以使用curl命令:
  13. 现在,你可以通过向api/token/发送POST请求,提供有效的用户名和密码来获取JWT令牌。例如,可以使用curl命令:
  14. 成功获取JWT令牌后,服务器将返回一个包含访问和刷新令牌的JSON响应。

以上是使用Django DRF和Simple JWT获取当前用户的基本步骤。这种方法适用于构建基于JWT身份验证的RESTful API。在实际应用中,你可以根据具体需求进行进一步的定制和扩展。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ai
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iotexplorer
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBCAS):https://cloud.tencent.com/product/tbcs
  • 腾讯元宇宙:https://cloud.tencent.com/product/tencent-metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

jwt:json web token 在用户注册登录后,记录用户登录状态,我们可以用cookiesession来做状态保持,cookie存储在客户端,安全性低,session存储在服务器端,安全性高,...但是在分布式架构中session不能同步化,所以我们用jwt来验证接口安全 组成:头部 载荷 签证 Jwt服务端不需要存储token串,用户请求时携带着经过哈希加密base64编码后的字符串过来,服务端通过识别...token值判断用户信息、过期时间等信息,在使用期间内不可能取消令牌或更改令牌权限。...='app.User' # 指定使用APP中的 model User进行验证 在django中,我们用内置的User表做登录功能 from rest_framework_jwt.views import...exception_handler from rest_framework_jwt.utils import jwt_decode_handler # 获取登陆的用户 token = request.META.get

3.2K10

django使用JWT保存用户登录信息

JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。...JWT最普遍的一个作用就是用来保存用户的登录信息。 JWT的流程 ? 1.签发JWT用户正确输入账号密码成功登录后,服务端就会签发JWT。...django使用第三方库djangorestframework-jwt生成JWT,所以先安装第三方包。...2.前端保存JWT 前端有两种方式储存数据,分别是localStorage sessionStorage。...到此这篇关于django使用JWT保存用户登录信息的文章就介绍到这了,更多相关django 保存用户登录信息内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn

1.5K20

Python进阶43-drf框架(五)

群查过滤组件前戏 群查之搜索过滤组件 群查之排序过滤组件 基础分页组件 偏移分页器 自定义过滤器 游标分页器(了解) Django过滤器插件 django-filter重点使用方法...注:服务器jwt签名加密秘钥一定不能泄露 签发token:固定的头部信息加密.当前的登陆用户与过期时间加密.头部+载荷+秘钥生成不可逆加密 校验token:头部可校验也可以不校验,载荷校验出用户与过期时间...install djangorestframework-jwt -i https://mirrors.aliyun.com/pypi/simple/ ---- 路由 登录接口,就直接使用 使用:user...(user_obj) token = jwt_encode_handler(payload) ## 将当前用户签发的token都保存在序列化对象中... 邮箱登录  因为没有手机号,所以无法使用手机登录  群查数据准备 ---- 模型层 from django.db import models ## 用户表:角色groups

3.1K20

Django(72)Django认证系统库–djoser「建议收藏」

作用:Django认证系统的REST实现。djoser库提供了一组Django Rest Framework视图,用于处理注册、登录、注销、密码重置帐户激活等基本操作。它适用于自定义用户模型。...Django 3.1 支持的drf版本 Django Rest Framework 3.9 Django Rest Framework 3.10 Django Rest Framework 3.11...支持的身份验证后端 基于drf的身份认证Token 基于django-rest-framework-simplejwt的JWT认证 可用端点 /users/ /users/me/ /users...使用接口测试工具postman或者其他工具,输入urldata,就能访问接口了 可以看到我们已经成功创建了一个id为2的用户 未登录查询用户信息 刚才我们只是创建了一个新用户,但是没有进行登录操作...使用授权时的请求头中的请求标识,格式为:JWT ,配置信息如下: SIMPLE_JWT = { 'AUTH_HEADER_TYPES': ('JWT',), } 最后在

1.8K20

Django+Vue开发生鲜电商平台之7.用户登录注册功能

一、DRF的token基本使用 1.DRF的token登录原理 基于DRF的前后端分离登录与单独使用Django登录的原理不同,不再需要CSRF验证,DRF提供了许多开箱即用的身份验证方案,并且还允许实现自定义方案...显然,通过携带数据访问http://127.0.0.1:8000/api-token-auth/,生成了当前用户的token并获取到,在生成token的同时,自动将生成的token当前用户存入表authtoken_token...2.使用JWT完成用户认证 在DRF使用JWT需要先安装依赖库,直接在虚拟环境中使用命令pip install djangorestframework-jwt安装即可。...显然获取到了JWT,并且可以正常作为用户信息进行登录访问。...可以看到,在登录之前,state中nametoken均为空,登录之后即变为当前用户用户JWT

4.2K20

Django(75)django-rest-framework-simplejwt「建议收藏」

前言 由于之前我们一直使用django-rest-framework-jwt 这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-rest-framework-simplejwt...介绍 Simple JWTDjango REST Framework提供了JSON Web TOKEN身份验证。...并且借鉴了DRF中的另一个JSON web token库django-rest-framework-jwt 安装 1.使用以下pip命令安装 pip install djangorestframework-simplejwt...'rest_framework_simplejwt', ... ] 验证 最后我们使用接口工具验证simple jwt是否能正常工作,访问http://127.0.0.1:8000/api/token...SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5), # 设置token有效时间 'REFRESH_TOKEN_LIFETIME

1.7K40

Django REST Framework-认证

Django REST Framework(DRF)提供了各种身份验证选项,以确保您的API端点仅对授权用户可用。...在该机制中,客户端向服务器发送用户密码,服务器使用这些凭据创建会话并将会话ID返回给客户端。客户端之后使用此会话ID向服务器发送请求。...在该机制中,客户端向服务器发送JWT,服务器使用该令牌验证客户端身份。DRF提供了一个内置的JSONWebTokenAuthentication类,用于实现基于JWT的身份验证。...在该机制中,客户端向服务器发送用户密码,服务器使用这些凭据验证客户端身份。DRF提供了一个内置的BasicAuthentication类,用于实现基于Basic的身份验证。...在get()方法中,我们可以通过request.userrequest.auth属性来获取当前用户令牌实例。

1K20

JWT 的 Token 过期时间为什么没有生效

在我第一次在 DRFDjango REST Framework)中使用 JWT 时,感觉 JWT 非常神奇,它即没有使用 session、cookie,也不使用数据库,仅靠一段加密的字符串,就解决了用户身份验证的烦恼...当时遇到的问题就是,无论怎么设置 JWT TOKEN 的过期时间,都没有生效,即使设置为 1 秒后过期,过了 1 分钟,TOKEN 还是可以正常使用,重启 Django 服务也不行。...来自 payload,payload 又来自 TOKEN 本身: 至此谜底揭开,原来,TOKEN 的过期时间其实被编码在了 TOKEN 本身,服务器收到 TOKEN 时先进行解码,解码出过期时间,然后当前时间进行对比...] ) 解密使用同样的算法,使用公钥或私钥进行解密,解密成功且不过期,则认为用户有权限访问,正常返回。...很多开源软件设计模式的应用都非常值得我们学习,比如 DRF 的模块设计,通过 mixins 组合来实现灵活可扩展的 APIView,通过子类传入相关的 class 来实现用户自定义的功能。

2.2K30

Django+JWT实现Token认证

对外提供API不用django rest framework(DRF)就是旁门左道吗?...,这里不细说,只讲下Django如何利用JWT实现对API的认证鉴权,搜了几乎所有的文章都是说JWT如何结合DRF使用的,如果你的项目没有用到DRF框架,也不想仅仅为了鉴权API就引入庞大复杂的DRF框架...同一个view函数既给前端页面提供数据,又对外提供API服务,要同时满足基于账号密码的验证JWT验证 2....Token正确,且数据没有被篡改 当然我们前文说了JWT并没有对数据进行加密,如果没有secret_key也可以直接获取到Payload里边的数据,只是缺少了签名算法无法验证数据是否准确,pyjwt也提供了直接获取...我们可以参考Django的解决方案:装饰器,例如用来检查用户是否登录的login_required用来检查用户是否有权限的permission_required两个装饰器,我们可以自己实现一个装饰器,

2.7K20

DRF进阶之DRF视图常用功能

DRF视图常用功能 DRF视图 DRF视图类介绍 在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。...http://127.0.0.1:8000/myapp/users2/5/ #指定id数据的更新,删除,查看 ViewSet类 GenericAPIView已经完成了许多功能,但会有一个问题,获取所有用户列表单个用户需要分别定义两个视图...JWT 与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...IsAdminUser:仅管理员用户 IsAuthenticatedOrReadOnly:登录的用户可以读写API,未登录用户只读 DRF Session 认证 参考文档: https://www.django-rest-framework.org

4.3K10

Django OAuth2 JWT 案例

Django OAuth2 JWT 案例 Posted August 08, 2017 在重写 Ansible 监控平台时, 需要前后端分离, 并且需要使用公司的账户系统。...而前后端认证我一直采取的 JWT 认证规范,具体为什么这么选择, 这里不多讲。而符合DRFJWT 框架, 默认使用的是 Django 自带的账户系统做的。...所以再 OAuth2 JWT 结合需要做点工作。...OAuth2认证方法 此步骤主要包含, 从资源服务器交换 Token, 然后根据 token 获取当前用户的 profile 信息, 一般为 email avatar 信息....如果没有此用户则创建, 并设置未激活状态 如果有此用户, 并且处于未激活状态, 则提示用户找管理员激活 如果已经激活, 返回登录此用户并返回 jwt. """ import requests from

1.3K50
领券