在 cookie 中设置 Django REST Framework JWT

2024-02-10

我在用djangorestframework-jwt https://github.com/GetBlimp/django-rest-framework-jwt对用户进行身份验证。我已经覆盖了内置的JSONWebTokenAPIView也在响应中返回用户详细信息。在我看来,我也在cookies中设置了令牌。

def post(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data)

    if serializer.is_valid():
        user = serializer.object.get('user') or request.user
        token = serializer.object.get('token')
        response_data = {
            'access_token': token,
            'user': UserInfoSerializer(user).data
        }
        response = Response(response_data, status=status.HTTP_200_OK)
        if api_settings.JWT_AUTH_COOKIE:
            expiration = (datetime.utcnow() + api_settings.JWT_EXPIRATION_DELTA)
            response.set_cookie(api_settings.JWT_AUTH_COOKIE,
                                response.data['access_token'],
                                expires=expiration,
                                httponly=True)
        return response

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

它在 Django 服务器上运行良好。当我使用 REST 可浏览 api 视图验证 api 时,我可以在 cookie 中看到令牌。但是我的前端(React)应用程序正在 localhost:3000 上运行,当我从前端服务器点击这个 api 时,我收到了成功响应,但 cookie 中没有设置令牌。

我还需要设置 cookie 域吗?


我需要设置withCredentials: true在前端和后端。

感谢这篇文章找到了答案Django cookie 没有保存在浏览器上 https://stackoverflow.com/questions/42188260/django-cookies-are-not-getting-saved-on-browser

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

在 cookie 中设置 Django REST Framework JWT 的相关文章

随机推荐

  • Android 键盘打开时防止文档重排/浏览器调整大小

    这是针对 HTML5 Javascript Web 应用程序 而不是本机 Android 应用程序 当 android 软键盘打开时 如何防止浏览器 DOM 调整我的内容大小 响应式 主要是 vw vh 大小等 发生的情况是 一旦打开键盘
  • 如何将 .sks 文件添加到现有 Swift/Sprite-Kit 项目?

    我开始遵循 Ray Wenderlich 的 太空入侵者 教程 但分歧很大 我现在有 3 个 SKScene 我的标题屏幕 我的主游戏屏幕和我的最终关卡 游戏结束屏幕 我添加了标题屏幕和游戏结束场景 它们都有 sks 文件 主游戏屏幕没有
  • Javascript:控制 Google Chrome 打开选项卡音频音量控制

    有没有办法程序化联盟无论 Web 应用程序是如何设计的 HTML5 音频元素还是 Flash 等 我想要控制选项卡上的音频级别吗 只是为了明确起见 我不打算研究网页中的某些 id 元素 或其他任何内容 而是像 Chrome ThisAudi
  • Python 中的文件排序

    我想根据数值对 Python 中的文件进行排序 我的输入文件如下所示 66135 A 65117 B 63301 C 63793 D 输出应该是 63301 C 63793 D 65117 B 66135 A 怎么做 f2 writelin
  • Solr 使用 contains 进行搜索,听起来像

    问题 我在 solr 中有一个电影信息 两个字符串字段定义电影标题和导演姓名 复制字段定义 solr 默认搜索的另一个字段 我想要像谷歌一样的搜索 范围有限 如下所示 如何实现它 1 如何在solr中搜索包含 例如 a 如果电影导演的名字是
  • VS 2008 中的包装程序集密钥文件设置在哪里?

    我正在尝试构建一个强命名的应用程序 它引用了我通过 添加引用 对话框添加的 COM 互操作库 已经有一段时间了 但我似乎记得在旧版本的 Visual Studio 中 有一个项目设置包装组件密钥文件 我在 Visual Studio 200
  • Java Stream:查找具有属性最小/最大值的元素

    我有一个对象流 我想找到具有某些属性最大值的对象 而计算成本很高 作为一个具体的简单示例 假设我们有一个字符串列表 我们想要找到最酷的一个 给定一个coolnessIndex功能 以下应该有效 String coolestString st
  • glTexImage2D 与 gluBuild2DMipmaps

    非常基本的 OpenGL 纹理创建代码 int width height BYTE data FILE file open texture data file fopen filename rb if file NULL return 0
  • 使用 API 平台允许 json 中存在 NULL 值

    我目前拥有该实体 我想展示我的财产firedDate在我的 JSON 中 该值甚至为 null ApiResource normalizationContext groups employee ApiFilter DateFilter cl
  • 平滑 ggplot2 中的 geom_tile 地图 - 插值数据

    I m trying to plot an spatial map from a lon lat data set Following the example in https stackoverflow com a 19339663 70
  • 从主线程终止辅助线程(可可)

    我正在 cocoa 框架的帮助下开发一个用 Objective C 编写的小型应用程序 但遇到了多线程问题 如果有人可以帮助我提供一些关于如何从主线程终止辅助 工作 线程的指导 我将非常感激 IBAction startWorking id
  • Discord js / 检查用户是否在特定语音频道中

    我希望我的机器人使用 const voiceChannel message member voice channel const voiceChannelID message member voice channelID if voiceC
  • 列出从文件输入中选择的文件

    我想列出从文件输入中选择的文件 div class fileUpload myButton span Upload span div
  • VS2012 nmake 使用 v110_xp 工具集?

    有没有办法使用v110 xp使用 nmake 编译时的工具集 而不是默认的 v110 我正在尝试为 VisualStudio2012 编译 Qt5 库 并且我也需要它在 Windows XP 计算机上工作 我已经成功地使用 VS2012 和
  • 调用函数而不等待它

    你好 我想知道是否有一种方法可以调用函数 方法 最好是Python或Java 并继续执行而不等待它 Example def a b call a function b return something def b something tha
  • 在运行时替换 QWidget 对象

    在我的应用程序中 我必须用自定义的 QLineEdit 替换所有 QLineEdit 元素 为此 有不同的解决方案 修改从 pyuic4 生成的 py 文件 并将所有 QLineEdit 对象替换为我的一个 LineEdit 这个解决方案并
  • Google Spreadsheet API v4 使用“ApiKey”在电子表格中“添加行”

    我正在尝试使用 Google Spreadsheet API v4 直接使用 ApiKey 在电子表格中 添加行 而不使用 OAuth 2 0 如果我使用 OAuth 2 0 它成功 添加行 但我的要求是使用 ApiKey 参考了这个网址
  • django-auth-ldap 身份验证失败

    我正在尝试使用Django Auth Ldap https pythonhosted org django auth ldap 在我的项目 Django 1 6 Python 2 7 中 但它不起作用 我的活动目录模式是 我已经通过安装 l
  • 将 Catalyst 应用程序部署到生产服务器的最佳实践是什么?

    将 Catalyst 应用程序部署到生产服务器的好方法是什么 目前 我只是在存储库的根目录中有一个 FastCGI 调度脚本 当我想要更新服务器代码时 我将分支推送到服务器 这很简单 但并不完美 如果代码在服务器计算机上的测试失败 例如由于
  • 在 cookie 中设置 Django REST Framework JWT

    我在用djangorestframework jwt https github com GetBlimp django rest framework jwt对用户进行身份验证 我已经覆盖了内置的JSONWebTokenAPIView也在响应