问题标签 [authlib]

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 回答
330 浏览

python - 迁移指南 flask-oauthlib 到 authlib

我正在尝试将使用 Flask-OAuth 的旧版应用程序迁移到 authlib。authlib 的文档相当不错,但有帮助的是迁移指南,因为我真的不知道 flask-oauthlib 的哪些部分与 authlib 的部分相似。

例如(这只是一个例子):flask-oauthlib有一个OAuth2RequestValidatorproviders包下调用的类。我不知道我是否可以安全地撕掉它,或者 authlib 的哪个部分取代了它。旧代码也使用verify_request. authlib 中的等价物是什么?只是一个快速指南 - old:使用thisnew:替换为(链接到)this

我已经查看了生产中的 Flask-oauthlib 或 authlib 问题?以及项目中的迁移udata,但该项目非常大并且不容易遵循。一个基本的flask-oauthlib例子和一些关于哪些类替换的评论,以及文档中的哪些位置对于让人们采用新库非常有帮助。

0 投票
1 回答
6100 浏览

flask - Authlib 客户端错误:请求和响应中的状态不相等

我正在尝试实现authlib客户端和服务器。我以 OAuth2.0 示例为例,并按照教程在 Flask 站点上进行了我自己的客户端授权。这是我的代码:

我所说的服务器代码与https://github.com/authlib/example-oauth2-server存储库中的代码几乎相同。

当我尝试进行授权时,我将访问授权服务器(在端口 5000 上)并确认我允许访问。但是当我在页面http://127.0.0.1:9001/login/authorized?code=...&state=...(9001)上重定向回客户端站点时,我收到了错误:

有什么问题?两个部分都使用 Authlib 0.8。

0 投票
1 回答
530 浏览

flask - 如何为 Authlib 使用多个范围

我正在使用 Authlib 0.7 版。我试图让客户端访问多个范围,我这样做的方式是在客户端创建时传递一个由空格分隔的字符串作为范围(例如“A B”)。当我为此客户端生成访问令牌时,它的范围设置为“A B”。但是,当我尝试访问受范围“A”保护的资源(为了保护我添加了 @require_oauth('A') 的资源)时,我被拒绝访问并收到 http 403 错误。任何可能帮助我解决此问题的建议将不胜感激。谢谢

0 投票
0 回答
646 浏览

python - OAuth 2.0 连接由对等方重置

我正在尝试连接到我的 api,但是当我尝试fetch access token ()或只是向端点发出简单请求时/oauth/authorize,我收到此错误:

' 对等方重置连接 ' 套接字错误对我不起作用。我在本地使用https连接和来自 Flask 的默认服务器。一些技巧 ?

更新 :

我确实尝试设置两种方式的 ssl:

1º:

2º:

0 投票
1 回答
2495 浏览

python - 如何在 Flask 上使用 Authlib 2.0 获取身份验证代码/令牌?

我已经多次阅读Authlib的部分文档和示例,我还阅读了有关Auth 2.0概念的文章,但我不知道该怎么做。我希望我的用户进行登录(使用用户名和密码),然后我的应用程序返回一个令牌。之后用户就可以使用私有资源了@require_oauth('profile')

我的客户 :

我的 POST 请求(使用Postman):

发出请求后的错误:

授权:

令牌:

轮廓 :

令牌继续与 Auth 示例相同。

如果我尝试在/resource/profile没有令牌 / autorização 的情况下访问:

我该如何解决?

Obs:在我解决这个问题后,我怎样才能获得 Auth Token 并将标头发送到/resource/profile

另一个参考:使用 OAuth 2.0 代码授予流程授权访问 Azure Active Directory Web 应用程序 OAuth 2.0:概述 invalid_grant 试图从谷歌获取 oAuth 令牌询问 刷新访问令牌时出现“invalid_grant”错误的情况? , 授权码授予返回 invalid_grant ...

0 投票
1 回答
717 浏览

oauth-2.0 - 通过授权码从lepture/Authlib获取Refresh Token

我正在尝试开发一个使用 Authlib OAuth2 服务器获取刷新令牌的简单工具,但此处的示例服务器不发出刷新令牌。当我打印令牌时,我得到以下信息:

流程是这里提到的授权码;首先我处理同意部分:

然后我尝试获取令牌:

0 投票
1 回答
149 浏览

python - 如何创建请求对象以获取令牌

我需要创建并返回这样的令牌:

但我不知道如何构建接收的request对象create token response。你能帮我吗 ?

Obs :我需要过滤输入数据,我不想使用/oauth/token你可以在这里看到

0 投票
1 回答
1290 浏览

python - 如何在 Flask 中向 request.form 添加参数

如何在 Flask 中{'client_id':'...', 'grant_type':'...'}添加对象?request.form

我知道request.form不可变的,但我需要这样做,因为我需要使用的方法(来自oauth)只是接受request.form,如果我通过.json它不起作用。

这个类的文档不好。我确实尝试创建一个实例ImmutableMultiDict,但我不知道如何将 dict 设置为ImmutableMultiDict然后request.form正确设置。

Obs:我无法像这样在请求中发送参数(键:值):

在此处输入图像描述

0 投票
1 回答
396 浏览

oauth-2.0 - 验证 authlib 中的刷新令牌

我想验证我之前从服务器获得的刷新令牌。一种可能性是从服务器获取访问令牌,这将隐式验证使用的刷新令牌。但是这里生成的访问令牌对我没有用。或者,我可以公开一个接口(在示例令牌服务器的“routes.py”中),用于通过函数验证给定的刷新令牌:

如果我正确理解了流程,我需要获取 RefreshTokenGrant 对象来执行这个在“authorization_server.py”中实例化的函数:

理论上,我可以通过令牌服务器示例中的烧瓶授权服务器对象(flask/oauth2/authorization_server.py)从实际授权对象(authlib/specs/rfc6749/authorization_server.py)获取此令牌授予对象,但似乎没有办法从后者获取前者的对象。有没有更简单的方法来实现我想做的事情?

0 投票
1 回答
287 浏览

android - Authlib 在使用 android appauth 并使用多个范围值时报告“尝试解码非 urlencoded 字符串时出错”

我正在尝试 Authlib。我有一个工作 pyoidc 后端和一个使用 android appauth 的测试应用程序(从 google codelabs 教程修改)。我为本地机器上的 Authlib 安装重新配置了 android 测试应用程序。现在,当我尝试发出具有多个范围的授权请求时出现此错误(我将字符串部分剪切到相关部分):

我开始从堆栈跟踪和 android 端的 request_uri 跟踪问题。但请求 uri 的违规部分为...&scope=openid%20offline_access&....

我从's打印出environ参数,我看到这些相关条目再次缩小到范围:flask/app.py__call__

我很混乱。为什么werkzeug.request在填充此参数之前似乎对字符串进行了预解码environ,然后调用urls/url_decode了authlib werkzeug.request?编码是否%20不足或不正确?但如果是这样的话,这与默认的 app_auth_android 行为对不同的 oidc 后端和谷歌的单点登录方案有效这一事实有何不同?

完整的堆栈跟踪: