问题标签 [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 投票
1 回答
1613 浏览

python - 如何将身份验证功能放入烧瓶中的@app.before_request

我想在烧瓶应用程序中制作身份验证层。我正在使用flask-jwt-extended 进行jwt auth,因此我必须为每个受保护的路线提及@jwt_requied 装饰器。所以我不想对每条受保护的路线都这样做。我想定义一个函数,并使用@app.before_request 在每个请求之前执行它。我希望身份验证发生在这一层。

所以这是我想在每个请求检查身份验证之前调用的函数。

基本上我的 qns 是如何在 @app.before_request def before_calback() 中进行身份验证?

0 投票
0 回答
896 浏览

python - Flask JWT 扩展在验证 Google JWT 令牌时抛出异常

我有一个 SPA 应用程序。每个客户端请求都包含Authorization: Bearer <access_token>从 google 检索到的https://developers.google.com/identity/protocols/OpenIDConnect(google创建 JWT 令牌)

验证端点(顺便说一下graphQL)时@jwt_required出现错误The specified alg value is not allowed

我尝试按照此处的状态调整配置选项,但没有运气。(基本上设置or到 RS256 但然后我得到要么JWT_ALGORITHMJWT_PUBLIC_KEYJWT_PUBLIC_KEY must be set to use asymmetric cryptography algorithm "RS256"Could not deserialize key data.

这里智威汤逊谷歌形状:

标题:

身体:

任何帮助表示赞赏!(尽管继续努力)

0 投票
1 回答
3244 浏览

python - Flask-JWT-Extended:@jwt_refresh_token_required 注释不起作用

按照 Oleg Agapov 的教程,我有一个登录资源(/login端点):

使用正确的凭据调用此端点,我确实得到了响应:

现在,我在/secret端点上有一个测试资源:

在请求中使用包含的承载标头调用此端点refresh_token应返回:

没有@jwt_refresh_token_required注释(不发送任何令牌)这正是我得到的。但是我需要注释来保护我的端点并满足一些令牌要求。

只是它不起作用。使用Authentication : Bearer *Refresh_Token*标题我只得到:

在此处输入图像描述

我知道access_token应该使用它,但我不想要它的 15 分钟到期时间。我不明白为什么会出现问题,因为我们正在做同样的事情来access_token使用需要refresh_token. 我当然可能是错的。

这是poject_folder根文件夹__init__.py中检查吊销的片段:

我在这里想念什么?

0 投票
3 回答
1858 浏览

python - 如何从烧瓶中的中间件(app.before_request())返回烧瓶响应?

我在我的应用程序中声明了一个中间件部分,在请求之前执行了一些代码。在烧瓶中有两个装饰器被调用@app.before_request@app.after_request通过使用它们我们可以声明一个中间件部分。我想在中间件中验证 JWT 令牌的身份验证。

如果令牌有问题,那么我想捕获该异常并返回消息“无效令牌”。我不想执行进一步的代码。那么如何从除了块返回响应?

0 投票
2 回答
2659 浏览

python - flask-jwt-extended:装饰器@jwt.token_in_blacklist_loader 总是撤销令牌

在我的 app.py 中,我初始化了 flask-jwt-extended 如下:

然后我使用片段在登录中创建令牌:

奇怪的是,如果我将装饰器 @jwt.token_in_blacklist_loader 添加到某个端点,我总是收到“令牌已被撤销”错误消息。

据我所知,这个装饰器是检查令牌是否被列入黑名单,我只是从登录创建一个新令牌,创建新令牌并检查令牌是否被列入黑名单的最佳做法是什么?

0 投票
1 回答
337 浏览

amazon-web-services - Route53 将子域路由到 AWS Lambda 得到 404

我在 aws route53 中有一个域。

cloudfront我的前端通过别名路由到该域并且运行良好。

我的后端位于aws lambda,我想把它放在我的域后面,这样我的用户就可以使用 jwt cookie 进行授权。

我使用 /production 的基本路径映射创建了 api.mydomain.com aws api gateway-> 指向我的 lambda,并尝试使用 CNAME 和 Alias 添加我的 lambda,但均未成功,当我调用 https://api.mydomain.com时它们返回 404 /生产/登录

但是当我调用https://xxxx.execute-api.xxxx.amazonaws.com/production/login时,它工作得很好。

0 投票
1 回答
730 浏览

flask - 在 Flask-JWT-Extended 中外部存储 JWT 令牌

我有一个使用 Flask-JWT-Extended 在 AWS 中运行的 Flask 应用程序。它正在为 Web 应用程序提供 REST API 调用。

正如我从文档中了解到的那样,令牌是生成并存储在内存中的。我正在考虑将它们存储在 Flask 应用程序外部的数据库或 Redis 中。这样做的原因是为了支持负载均衡:

  • 我认为需要粘性会话来确保客户端的令牌可以被正确解码和分析有效性
  • 我正在考虑将应用程序放在 AWS Lambda 中,一旦请求得到处理,它可能会清除 JWT 列表。

我的问题是:

  • 有什么理由这个方案通常不会奏效吗?
  • 如果令牌存储在 Flask 应用程序之外,则不清楚如何覆盖本地令牌存储并访问外部存储介质。这可以做到吗?
0 投票
0 回答
1408 浏览

nginx - 进行 API 调用时请求随机挂起

我在 AWS 上部署了一堆 Flask、Nginx、Gunicorn。上面有一组 API 路由,当我尝试向 /api/login 路径发出请求时,Postman 请求随机挂起。在这一点上,我没有看到 nginx 错误日志(启用了调试)、flask+ gunicorn 应用程序日志(连接到 gunicorn 日志的烧瓶日志,在 Debug 级别)有任何变化,甚至服务器上运行的 TCPdump 和 tshark 都没有记录在此期间发送或接收的任何数据包。

请求在 Postman 中等待很长时间,并且永远不会得到解决,只会抛出错误

错误:套接字挂起

警告:此请求未完全发送,可能没有所有必需的系统标头

大多数请求都很好,但每隔一段时间就会有一个这样挂起。

0 投票
0 回答
120 浏览

python - 有没有办法从 flask_jwt_extended 截取 401 状态码并返回这个值?

所以我生成了一个 JWT 令牌,10 分钟后它就会过期。一旦过期,我希望能够捕捉到这个 401 错误代码。我正在使用 flask_jwt_extended 库。这是我的代码:

0 投票
1 回答
1244 浏览

python - Flask-Limiter 不适用于基于 Flask-Restful API 的应用程序

我正在尝试构建一个 RESTful API 应用程序flask_restfulflask_jwt_extended用于用户授权并将用户flask_limiter的配额限制为 6/分钟。我的玩具/测试代码如下(尚未实施实际授权方案):

端点/token为用户生成一个 JWT 令牌,他们的用户名作为 JWT 身份存储在里面。当/test使用此令牌访问端点时,我想检查此特定用户(即此特定身份)访问此端点的次数,因此使用get_jwt_identityaskey_funcLimiter.

/test问题是我在运行上述代码时访问端点时没有任何限制;我可以随心所欲地访问它,尽可能快地访问它。我在这里错过了什么吗?