问题标签 [flask-jwt-extended]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
136 浏览

python - 在 Flask 中为 Preflight 请求配置特定标头

我正在研究 React Native 前端和 Python Flask 后端。对于我的 POST 请求,我有时需要提供两个额外的标头:X-CSRF-TOKEN-ACCESS 和 X-CSRF-TOKEN-REFRESH 用于我的身份验证。

但是,我的问题是我使用的是flask-cors + flask-jwt-extended,看起来我遇到了一些预检请求问题:我的前端发送带有两个标头的请求,但是当在POST中收到请求时后端,两个标头值都是null. 在预检 OPTIONS 请求期间,我猜这些标头已变为空...

我的问题:我需要在我的烧瓶配置中修改什么以允许在我的请求中使用此类标头?

实际配置:

和其他配置:

编辑:还有一件事。当我的 React 请求 X-CSRF-TOKE-REFRESH 或 X-CSRF-TOKE-ACCESS 标头值设置为哑值(例如:“blabla”)时,我可以在后端清楚地看到它。

0 投票
1 回答
163 浏览

if-statement - 如何根据条件选择应用哪个装饰器?

可以根据条件应用装饰器吗?下面是一个简单的例子:

我想要的是,当设置环境变量时,应用bold_decorator. 如果未设置,请使用italic_decorator. 我正在为具有装饰器的 JWT 使用 Flask 框架,jwt_required并且jwt_optional我无法修改这些装饰器的源代码。我正在尝试找到解决此问题的方法。任何帮助,将不胜感激

0 投票
1 回答
145 浏览

reactjs - 如果前端托管在一个域上,后端托管在另一个域上,是否可以发送 JWT 令牌?

我有一个全栈应用程序,分为 2 个应用程序:前端和后端。前端是在 Web 开发服务器下运行的 React 应用程序。后端是作为 Restful API 工作的 Flask 应用程序。我在后端实现了 JWT,想知道是否可以在 cookie 中存储 JWT 访问和刷新令牌。我发现通常的实现不起作用(我的意思是 JWT_TOKEN_LOCATION = 'cookies' 和 set_access_cookies()) - 我没有看到任何附加的 cookie。那是因为 2 个应用程序在不同的域上运行吗?这甚至可能吗?

0 投票
1 回答
71 浏览

flask - 检查 JWT ALG

我正在使用flask-jwt-extended库进行身份验证,一切正常,但我想检查是否有人使用 发送了操纵的 JWT 令牌ALG = none,因为这是用于欺骗服务器的已知漏洞点。

我查看了文档,但没有找到哪个选项可以让我检查alg所有请求中收到的内容。

谢谢。

0 投票
1 回答
205 浏览

flask - Flask-JWT-Ext get_current_user(), get_jwt_identity() returns None despite having tokens

Thanks for taking a look. I am trying to implement Flask-JWT-Ext. I have redis blacklist implemented in order to revoke my tokens.

I am trying to use get_current_user(), get_jwt_identity() etc but it is returning None, despite passing in the access tokens on with @jwt_required decorator...

Here is my login (which correctly generates access and refresh tokens):

I wasn't able to use get_current_user(), etc on a different route, so I made a sample one to test it out. It returns None for current user and identity, despite passing in the correct tokens in the header.

Do you know what I'm missing? I definitely have the redis blacklist set up correctly and generating tokens with create_access_token, etc work.

Thanks

0 投票
1 回答
275 浏览

flask-jwt-extended - Flask JWT Extended - access_token(标头)和 refresh_token(httpOnly cookie)的不同位置

如何使用 flask-jwt-extended 配置烧瓶应用程序,我们需要类似下面的内容。

  1. AccessToken/Bearer 必须作为 Header(而不是 cookie)发送
  2. RefreshToken 必须作为 httpOnlyCookie 发送,仅用于 /api/refreshtoken 路径

如何设置两个不同的令牌,一个在标头中,一个在 cookie 中?我们可以将两者都设置为 cookie 或都设置为标头。

有什么帮助吗?

谢谢拉克西特

0 投票
1 回答
97 浏览

react-native - 使用烧瓶安全性在登录时将 JWT 添加到 cookie

描述:我正在尝试在登录时设置 jwt 令牌, flask_jwt_extended.set_access_cookiesflask_jwt_extended.set_refresh_cookies问题是我无法在/login端点设置它,因为它是由 flask-security 自动创建的。最好的方法是什么?最好的方法是覆盖/login端点并将它们设置在那里吗?或者即使我需要将它添加到请求中而不是返回验证需要的或值,这是否可以在validate方法中完成?ExtendedLoginFormTrueFalse

最终结果:使用常规 cookie(进行身份验证)与烧瓶相关的端点进行交互。使用 JWT 令牌(在 cookie 中编码)与 react-native 编译代码进行交互。

0 投票
1 回答
294 浏览

flask - flask_jwt_extended 不检查标头中的 X-CSRF-TOKEN

我在 React Native 中发送了以下请求:

如您所见,我故意没有添加适当的标题:

在请求中,因为我想验证没有它 GET 请求会失败。

以下是我的配置:

在我的浏览器中,我可以看到以下相关 cookie:

在此处输入图像描述

端点定义如下:

当请求发生时,在控制台日志中,我得到一个200并且能够看到 json 数据。在请求标头(使用 Chrome 检查器)中,我看到X-CSRF-TOKEN从未设置。为什么会发生这种情况/为什么请求会通过?

来自 JWT 扩展文档:

0 投票
1 回答
116 浏览

python - 使用 Flask_jwt_extended 将刷新令牌签名密钥设置为用户的哈希密码

我是烧瓶的新手。我试图将刷新令牌签名密钥设置为用户散列密码。我只希望刷新令牌签名密钥包含用户散列密码而不是访问令牌。我浏览了 flask_jwt_extended 文档并在这里encode_key_loader遇到了方法。但是我不确定如何更改函数返回令牌类型的基数。这就是我到目前为止所拥有的。

我只需要弄清楚是否正在生成令牌的类型,然后我就可以返回适当的密钥。

0 投票
2 回答
4167 浏览

python - TypeError:使用flask_jwt_extended int RESTful API时类型函数的对象不是JSON可序列化的

我正在使用烧瓶构建一个 REST API。我正在使用邮递员测试在我的数据库中创建新项目的路由,但前提是用户已登录。注册和登录的路由运行良好,最后一个使用 flask_jwt_extended 模块返回令牌。当我向我的“/api/notes”(在数据库中创建一个新注释)发送一个发布请求时,我收到以下错误:

" (...) raise TypeError( f'Object of type {o.class .name } '

TypeError:类型函数的对象不是 JSON 可序列化的“

对于我正在使用邮递员的授权选项卡的请求。type:Bearer Token,字段中我的token(带引号和不带引号都试过)

我今天早上遇到了这个错误,在实施我的一对多关系之前,但我通过在 Barear 令牌字段中用“VERY_LONG_TOKEN”替换我的 VERY_LONG_TOKEN 来让它工作。我认为因为令牌包含点,所以它被解释为一个函数。但是在实现了关系之后,我去测试,又得到了这个错误。

我的 note.py 文件:

我的模型.py:

初始化.py:

资源/routes.py:

文件夹结构:

我的帖子请求的正文:

有没有人遇到过或知道如何解决它?

编辑:添加了更多代码信息