从 Django Rest Framework SIMPLE JWT 令牌(第 3 方)获取中间件中的用户名

2023-12-03

我正在使用 Django Rest Framework,并且包含了一个名为 的 3rd 方包REST框架simple智威汤逊认证这是引用的新框架, 和这个,REST 框架 JWT 身份验证,这是旧的(我想象),因为 github 上很长一段时间没有更新,并且可能不支持新版本。

我正在寻找一种方法,就像这样stackoverflow-第 3 个答案上的链接通过中间件,获取每个请求的用户信息,以便在需要时使用 django 信号应用/保存我的模型中的用户对象。 我检查了文档和互联网,但没有找到任何东西。因此,如果您已经遇到过这种情况,我将非常感谢您的帮助。

谢谢


要从用户模型获取用户名,您应该使用 request.user。这将为您提供请求中经过身份验证的用户的信息。但是,如果您使用 simple_jwt,则无法在中间件中直接使用 request.user,因为身份验证机制在视图函数中工作。

因此,您应该在中间件内部手动进行身份验证,然后可以使用 request.user 从用户模型中获取任何数据。

from rest_framework_simplejwt import authentication


class MyMiddleware():
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        return response

    def process_view(self, request, view_func, view_args, view_kwargs):
        request.user = authentication.JWTAuthentication().authenticate(request)[0]  # Manually authenticate the token

        print(request.user)  # Use the request.user as you want
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Django Rest Framework SIMPLE JWT 令牌(第 3 方)获取中间件中的用户名 的相关文章

随机推荐

  • Flask 中的一对一关系

    我正在尝试使用 SqlAlchemy 在 Flask 中创建一对一关系 我按照之前的post我创建了如下类 class Image db Model tablename image image id db Column db Integer
  • 使用 writeAttribute() 方法使用 XMLWriter 进行 php XML 导出问题

    我正在将表数据导出到 xml 中 其中在内容列中包含多语言内容并混合了 html 例如 xmlWriter gt writeAttribute value contents record name testing contents Just
  • JsFiddle 上的鼠标事件不起作用?

    我的小提琴在这里 但我不明白为什么它没有在 onmouseout 事件上调用我的函数 http jsfiddle net foreyez Xf6LW 有任何想法吗 工作正常 您只需将函数放在文档的头部 或元素位于 DOM 中之后的主体中 即
  • 如何使用 Telethon bot API 获取频道实体?

    我无法使用 Telethon Bot 获取对话框 因为该方法仅适用于客户端 因此 当我尝试使用其 id 访问实体时 我收到错误 如果我无法解析所有通道并且无法通过 id 访问它们 我该如何访问实体 通道 我想解析来自私人群组的消息并使用 T
  • Tensorflow和OpenCV实时分类

    我正在测试机器学习水域并使用TS成立模型来重新训练网络以对我想要的对象进行分类 最初 我的预测是在本地存储的图像上运行的 我意识到从文件中取消持久化图形需要 2 5 秒的时间 并且大约在同一时间运行实际的预测 此后 我调整了我的代码以合并来
  • CreateProcess 立即返回,但前提是启动的进程被隐藏

    我有下面的 Delphi 代码来为 CreateProcess API 调用提供一个友好的包装器 function StartProcess ExeName string CmdLineArgs string ShowWindow bool
  • Apache Spark 处理 case 语句

    我正在处理将 SQL 代码转换为 PySpark 代码的过程 并遇到了一些 SQL 语句 我不知道如何处理 pyspark 中的案例陈述 我计划创建一个 RDD 然后使用 rdd map 然后进行一些逻辑检查 这是正确的做法吗 请帮忙 基本
  • 非常简单的 html 的意外边距

    我有一个非常简单的html 红色 div 位于蓝色 div 内部 并且上边距为 10 像素 在非 ie 浏览器上 蓝色框距离视口顶部 10 px 红色 div 位于蓝色 div 的最顶部 我期望的是 ie 行为 红色 div 必须距蓝色 d
  • Visual Studio 2012支持哪个XP版本[作为目标操作系统]

    Visual Studio 2012 支持哪个版本的 Windows XP 编辑 VS12支持编译到哪个版本 我找到了这篇文章 http blogs msdn com b vcblog archive 2012 10 08 windows
  • 使用 .NET Interop 在 Adob​​e Reader 9 中以编程方式打印

    我正在使用 VB Net WinForms 我想调用 Adob e Reader 9 ActiveX 控件来打印一些 PDF 我已经将ActiveX控件添加到VS工具箱中 dll是AcroPDF dll COM名称 Adobe PDF Re
  • 在 C 中递归计算斐波那契数

    我正在尝试通过编写一个简单的程序来输出斐波那契数来学习C 它不起作用 斐波那契 h unsigned int fibonacci recursive unsigned int n 斐波那契 c include
  • 调用静态泛型方法

    我遇到了一个涉及静态泛型方法的奇怪情况 这是代码 class Foo
  • 如何将字符串转换为C#中的代码[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我看到c 中有这样的问题
  • Matlab 求解函数有问题吗?

    以下命令 syms x real f x log x 2 exp 1 x 2 fp x diff f x x fpp x diff fp x x and solve fpp x gt 0 x Real true 返回结果 求解 0 0 这不
  • 如何使用 LoadHTMLString 方法在 WebView 中加载大型 HTML 字符串?

    我必须使用 UIWebView 的 LoadHTMLString 方法将 html 字符串加载到 UIWebView 上 请找到下面的代码 wv loadHTMLString NSString stringWithFormat
  • 如何使用selenium python读取表数据?

    以下是表格 HTML 源代码 对于 selenium 来说 读取其内容似乎非常复杂 有人可以帮助我 使用 selenium 将这些数据读入 python 中吗 div class general table div class genera
  • 更改 asp.net c# 上 gridview 上的行或记录的颜色?

    我正在为预约簿制作一张桌子 我需要执行以下操作 显示尚未参加的所有约会 我有一个按钮将它们标记为已参加 如果尚未参加约会且约会日期早于今天的日期 则该行必须显示为红色 文本字体颜色 所以我的问题是 如何更改特定行的颜色 以及是否必须在查询中
  • 连接到远程服务器/数据库以从 iPhone 检索数据的最佳方式是什么

    我目前正在编写一个应用程序 需要访问远程服务器 数据库来读取 写入值 最好使用什么技术 我听说不支持 XML Webservices 这是否意味着 ASP NET Webservice 不容易访问 Thanks 不支持 XML Web 服务
  • 是否可以从 linq 表达式发出并保存 IL 代码?

    我知道我可以自己遍历 linq 表达式树并发出 IL 代码 但我正在努力避免这种情况 在这种情况下 使用 CodeDom 或 Roslyn 编译器不是一个选项 我必须从由专有 DSL 生成的一组现有 linq 表达式开始 有任何想法吗 谢谢
  • 从 Django Rest Framework SIMPLE JWT 令牌(第 3 方)获取中间件中的用户名

    我正在使用 Django Rest Framework 并且包含了一个名为 的 3rd 方包REST框架simple智威汤逊认证这是引用的新框架 和这个 REST 框架 JWT 身份验证 这是旧的 我想象 因为 github 上很长一段时间