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

在django 1.10 drf jwt响应中返回用户名

在Django 1.10中,DRF(Django Rest Framework)和JWT(JSON Web Token)结合使用时,可以通过自定义JWT响应来返回用户名。

首先,需要安装djangorestframework-jwt库来实现JWT认证。可以通过以下命令进行安装:

代码语言:txt
复制
pip install djangorestframework-jwt

接下来,在Django的设置文件(settings.py)中进行配置。添加以下内容:

代码语言:python
代码运行次数:0
复制
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    ],
}

JWT_AUTH = {
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'your_project_name.utils.jwt_response_payload_handler',
}

然后,在项目的utils.py文件中,创建一个名为jwt_response_payload_handler的函数,用于自定义JWT响应。在该函数中,可以通过payload参数获取JWT的载荷信息,其中包括用户信息。可以从载荷中提取用户名,并将其添加到响应中。

代码语言:python
代码运行次数:0
复制
from rest_framework_jwt.utils import jwt_payload_handler

def jwt_response_payload_handler(token, user=None, request=None):
    payload = jwt_payload_handler(user)
    return {
        'token': token,
        'user': user.username,  # 提取用户名
    }

最后,在视图中使用DRF的ObtainJSONWebToken视图来获取JWT。在响应中,将会包含用户名信息。

代码语言:python
代码运行次数:0
复制
from rest_framework_jwt.views import ObtainJSONWebToken

class CustomObtainJWTView(ObtainJSONWebToken):
    def post(self, request, *args, **kwargs):
        response = super().post(request, *args, **kwargs)
        response.data['user'] = request.user.username  # 添加用户名到响应中
        return response

以上就是在Django 1.10中使用DRF和JWT返回用户名的方法。这样可以在JWT认证成功后,将用户名作为响应的一部分返回给客户端。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云容器服务(TKE)、腾讯云数据库(TencentDB)等。你可以通过腾讯云官方网站获取更详细的产品介绍和文档。

腾讯云官方网站:https://cloud.tencent.com/

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

相关·内容

Python进阶43-drf框架(五)

# 完成数据的校验,会走序列化类的 全局钩子校验规则,校验得到登录用户并签发token存储序列化对象 核心源码:rest_framework_jwt.serializer.JSONWebTokenSerializer...(user) # 视图类,可以通过 序列化对象.object.get('user'或者'token') 拿到user和token return {...校验token源码分析 ---- 源码入口 # 前提:访问一个配置了jwt认证规则的视图类,就需要提交认证字符串token,认证类完成token的校验 # 1)rest_framework_jwt.authentication.JSONWebTokenAuthentication...先在api目录下的filter.py文件自定义一个类 ## django-filter插件过滤器类 from django_filters.rest_framework import FilterSet...处理异常,如果有响应结果,代表drf已处理,如果是None,自己处理 """ 序列化组件 # 1)可以将model对象序列化成可以返回给前台的json数据 # 2)可以校验前台传来的数据,完成model

3.1K20
  • 美多商城项目(三)

    12.我们的服务器根据openid判断是否绑定过本网站用户(查一下我们数据库的表)。 13.如果绑定过,我们的服务器直接签发jwt token并返回给客户端。...17.我们自己的服务器签发jwt token并返回给客户端。 ?...code= 参数: 通过查询字符串传递code 响应: 1)如果openid已经绑定过网站用户,直接生产jwt token并返回 { "user_id...6.重点内容 1.自定义Django认证系统用户模型类 2.跨域请求 3.celery异步任务发短信 4.JWT认证机制 5.自定义jwt扩展登录视图响应数据函数 6.自定义Django认证后端类(登录账户支持用户名和手机号...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

    89840

    美多商城项目(二)

    ['mobile'] = '13288888888' 4.返回应答,登录成功 返回应答时,会让客户端保存cookie和sessionid( 客户端session信息标识),之后客户端访问服务器时,就会携带...优点: a.存储session数据更加安全 2.2JWT认证机制 用户登录: 1.接收参数并进行校验(将用户名和密码校验) 2.检验用户名和密码是否正确 3.由服务器生成一个字符串(jwt token...),保存了登录用户的身份信息 公安局(服务器)--->身份证(jwt token) 4.返回响应时,需要将jwt token返回给客户端 客户端需要将jwt token保存下来,然后在请求服务器时...obtain_jwt_token这个登录视图就是接收username和password,并对账户名和密码进行校验,校验通过之后会生成一个jwt token,并在响应返回。...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

    1.1K30

    Django REST Framework-认证

    Django REST Framework(DRF)提供了各种身份验证选项,以确保您的API端点仅对授权用户可用。...该机制,客户端向服务器发送令牌,该令牌用于验证客户端身份。DRF提供了一个内置的TokenAuthentication类,用于实现基于令牌的身份验证。...该机制,客户端向服务器发送用户名和密码,服务器使用这些凭据创建会话并将会话ID返回给客户端。客户端之后使用此会话ID向服务器发送请求。...该机制,客户端向服务器发送JWT,服务器使用该令牌验证客户端身份。DRF提供了一个内置的JSONWebTokenAuthentication类,用于实现基于JWT的身份验证。...该机制,客户端向服务器发送用户名和密码,服务器使用这些凭据验证客户端身份。DRF提供了一个内置的BasicAuthentication类,用于实现基于Basic的身份验证。

    1.1K20

    Django REST framework+Vue 打造生鲜超市(六) 七、用户登录与手机注册

    七、用户登录与手机注册 7.1.drf的token (1)INSTALL_APP添加 INSTALLED_APPS = ( ......未经身份验证的响应被拒绝将导致 HTTP 401 Unauthorized 的响应和相应的 WWW-Authenticate header。...7.2.json web token方式完成用户认证 使用方法:http://getblimp.github.io/django-rest-framework-jwt/ (1)安装 pip install...jwt接口它默认采用的是用户名和密码登录验证,如果用手机登录的话,就会验证失败,所以我们需要自定义一个用户验证  自定义用户认证  (1)settings配置 AUTHENTICATION_BACKENDS...有效时间设置 settings配置 import datetime #有效期限 JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(

    6K80

    美多商城前三天重点内容大盘点

    认证后端类(登录账户支持用户名和手机号) 7.QQ登录开发流程(流程图,可以自己画一下) 1.自定义Django认证系统用户模型类 1.1Django自带模型类介绍 Django其实提供了用户模型类User...发起跨域请求时,在请求携带一个请求头: Origin:源请求地址 被请求的服务器返回响应时,如果允许源地址对其进行跨域请求,需要在响应时携带一个响应头: Access-Control-Allow-Origin...优点: a.存储session数据更加安全 4.2JWT认证机制 用户登录: 1.接收参数并进行校验(将用户名和密码校验) 2.检验用户名和密码是否正确 3.由服务器生成一个字符串(jwt token...jwt token,并在响应返回。...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词

    78520

    DRF进阶之DRF视图和常用功能

    DRF视图和常用功能 DRF视图 DRF视图类介绍 DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。...提供了一个响应类Reponse,响应的数据会自动转换符合前端的JSON数据格式。...JWT 与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...DRF支持四种认证方式: BasicAuthentication:基于用户名和密码的认证,适用于测试 SessionAuthentication:基于Session的认证 TokenAuthentication...需要重写返回信息函数 app项目下的utils目录中新增重写信息: myapp/utils/token_auth.py from rest_framework.authtoken.views import

    4.6K10

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

    我第一次 DRFDjango REST Framework)中使用 JWT 时,感觉 JWT 非常神奇,它即没有使用 session、cookie,也不使用数据库,仅靠一段加密的字符串,就解决了用户身份验证的烦恼...当时遇到的问题就是,无论怎么设置 JWT TOKEN 的过期时间,都没有生效,即使设置为 1 秒后过期,过了 1 分钟,TOKEN 还是可以正常使用,重启 Django 服务也不行。... DRF ,配置了 DEFAULT_AUTHENTICATION_CLASSES 就是 JWT: 直接定位至这个类,发现它继承了 BaseJSONWebTOKENAuthentication 然后看...至此,JWT 的原理已经非常清晰了: 用户第一次登录时,服务器(JWT)会获得用户名、用户 id,加上设置的过期时间构建 payload: payload = { 'user_id':...] ) 解密使用同样的算法,使用公钥或私钥进行解密,解密成功且不过期,则认为用户有权限访问,正常返回

    2.4K30

    美多商城项目(十一)

    code= 参数: 通过查询字符串传递code 响应: 如果用户已经绑定,直接生成jwt token并返回 { 'token': "jwt token...5.进行图片验证码的校验,可以将用户输入的图片验证码全部转换成小写,然后与redis缓存取到的验证码进行比较。 6。返回响应信息。 ?....前端发送请求,带上上一步生成的 access_token; 2.模型类定义验证 token 的方法,使用 itdangerous 提供的方法进行反验证,取出存在token 的手机号,进行判断是否...1.模型类实现检验修改密码 token 的方法,取出 data,判断 user_id 是否一样; 2.定义重置密码序列化器,判断两次密码是否一样,判断是否是当前用户,返回数据; 3.调用 updata...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词 重点内容回顾-DRF Django相关知识点回顾 美多商城项目导航帖

    1.5K11

    DRF JWT认证(二)

    目录 DRF JWT认证(二) django快速使用JWT 如何签发? 如何认证?...DRF JWT认证(二) 上篇JWT有了基本的认知,这篇来略谈JWT的使用 签发:一般我们登录成功后签发一个token串,token串分为三段,头部,载荷,签名 1)用基本信息公司信息存储json.../ django快速使用JWT 导入:pip3 install djangorestframework-jwt 如何签发?...JWT默认的配置是,我们登录成功后只返回一个token串,这也是默认的配置,我们如果想签发token后返回更多数据需要我们自定制 步骤 写一个函数,返回什么格式,前端就能看见什么格式 配置文件配置...,本质是用户信息通过base64编码到token串的第二段载荷,可以通过base64解码获取到用户信息 补充:HttpRequest.META HTTP请求的数据META HttpRequest.META

    1K20

    Django+JWT实现Token认证

    对外提供API不用django rest framework(DRF)就是旁门左道吗?...会发送请求给服务器,服务器对发送过来的账号密码进行验证鉴权,验证鉴权通过后,把用户信息记录在服务器端(django_session表),同时返回给浏览器一个sessionid用来唯一标识这个用户,浏览器将...,这里不细说,只讲下Django如何利用JWT实现对API的认证鉴权,搜了几乎所有的文章都是说JWT如何结合DRF使用的,如果你的项目没有用到DRF框架,也不想仅仅为了鉴权API就引入庞大复杂的DRF框架...Json对象,称为Payload,主要用来存放有效的信息,例如用户名,过期时间等等所有你想要传递的信息 第二部分是一个秘钥字串,这个秘钥主要用在下文Signature签名,服务端用来校验Token合法性...不会对结果进行加密,所以不要保存敏感信息Header或者Payload,服务端也主要依靠最后的Signature来验证Token是否有效以及有无被篡改 解密Token >>> jwt.decode(

    2.8K20

    (项目)生鲜超市(六)

    七、用户登录与手机注册 1、drf的token   INSTALLED_APPS中注册: 1 INSTALLED_APPS = ( 2 'rest_framework.authtoken' 3...drf返回的token值会保存到数据库并与用户进行关联: ?   然后客户端需要进行身份验证,令牌密钥包含在 Authorization HTTP header 。...的token也有很大的缺点: token信息是保存在数据库的,如果是一个分布式的系统,就比较麻烦 token永久有效,没有过期时间 2、json web token方式完成用户认证(JWT)   虚拟环境...jwt接口默认采用的是用户名和密码登录验证,如果用手机登录的话,就会验证失败,所以我们需要自定义一个用户验证,users/view.py编写: 1 from django.shortcuts import...配置定义好的类: 1 AUTHENTICATION_BACKENDS = ( 2 'users.views.CustomBackend', 3 )   jwt过期时间的设置,setting配置

    1.8K20

    美多商城项目(八)

    通过看商品的id是不是购物车数据字典,可以得知是否添加过。 4.2.3如果购物车没有添加过该商品,直接添加一个新元素。 5.返回应答,购物车记录添加成功。...我们获取用户的时候使用request.user也会触发认证机制,我们可以手动对错误进行捕获而不让其报错停止。如果进行访问的时候没有传递jwt用户,是不会进行jwt验证的,会将其作为匿名用户处理。...2.1给sku对象增加属性count和selected,分别保存该商品购物车添加数据和勾选状态。 3.将购物车商品数据序列化并返回。 3.1添加购物车商品序列化器类。 3.2将数据序列化并返回。...---- 5.购物车记录删除 API: DELETE /cart/ 参数: 通过请求头传递jwt token { "sku_id":"商品id" } 响应:...团队开发注意事项 浅谈密码加密 Django框架的英文单词 Django数据库的相关操作 DRF框架的英文单词 重点内容回顾-DRF Django相关知识点回顾

    1.1K20

    DRFDjango的认证和权限高在哪里

    Django可以用LoginRequiredMixin和PermissionRequiredMixin给类视图添加认证和权限,DRF做了高级封装,提供了更简洁的实现方式。...登录视图 如果用浏览器打开http://127.0.0.1:8000/snippets/,会发现只有GET方法没有POST,这是因为需要添加DRF登录视图,tutorial/urls.py添加rest_framework.urls...其他认证方式 本文使用的认证方式是默认的SessionAuthentication和BasicAuthentication,只要数据库的用户名、密码和请求的用户凭证(用户名、密码)匹配上了,就认为认证成功...pip install djangorestframework-jwt 这一部分内容官网教程并没有提及,等我们把教程学完了,以后再找时间来介绍。...这块的内容比Django的认证系统那套简洁,但是有点混淆,另外我之前参照网上实现了一版JWT,也有点不一样。看来还得写篇对比的文章才行。

    1.5K20

    Django 1.10文文档-第一个应用Part1-请求与响应

    如果Django版本不匹配,您可以去官网参考您的对应Django版本的教程,或者将Django更新到最新版本。 如果你仍然使用Python 2.7,你需要稍微调整代码,注意代码的注释。...我们Django内置了它,这样你就可以不配置用于生产环境的服务器(例如Apache)的情况下快速开发出产品,直到你准备好上线。 请注意:不要在任何生产环境使用这个服务器。...要在polls目录创建一个URLconf,polls文件夹创建一个名为urls.py的文件。...快速通道 Django 1.10文文档-第一个应用Part1-请求与响应 Django 1.10文文档-第一个应用Part2-模型和管理站点 Django 1.10文文档-第一个应用...Part3-视图和模板 Django 1.10文文档-第一个应用Part4-表单和通用视图

    1.4K50

    drf-jwt认证组件、权限组件、频率组件的使用

    目录 drf-jwt认证组件、权限组件、频率组件的使用 认证组件 权限组件 频率组件 drf-jwt签发token源码分析 自定义签发token实现多方式登录 源码分析 多方式登陆签发token实例...返回一个字符串,用作“ 401 Unauthenticated”响应的“ WWW-Authenticate”标头的值;如果身份验证方案应返回“ 403 Permission Denied”响应,则返回...如果使用HTTP Basic身份验证提供了正确的用户名和密码,则返回“用户”。 否则返回“无”。...# 2) 如果使用drf-jwt认证框架,drf-jwt框架提供了JSONWebTokenAuthentication # 3) 如果是自定义签发与校验token,才需要将校验token的算法封装到自定义的认证类...'ident': self.get_ident(request) } # 配置drf自带的频率类 'DEFAULT_THROTTLE_CLASSES': [], #settings文件全局配置

    2.3K20
    领券