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

python - 带有自签名证书的 Authlib SSLError

我正在使用带有以下代码的 authlib:

尝试使用自签名证书访问我自己的 OAuth2 服务器时会产生 requests.exceptions.SSLError (CERTIFICATE_VERIFY_FAILED)。

不管这个错误如何,我应该怎么做才能使用 HTTPS?

0 投票
1 回答
1644 浏览

flask - loginpass OAuth 客户端 - 不正确的行为

编辑:似乎存储在 Session 中的 redirect_uri 不会在调用中持续存在。

使用 loginpass 作为 OAuth2 客户端,使用示例仓库中的 authlib 服务器作为 OAuth2 服务器。

在 loginpass 中使用此代码

在授权步骤中,loginpass 向 OAuth2 服务器发送一个 redirect_uri 参数。服务器用验证码响应,然后 loginpass 请求一个令牌,但不包括 redirect_uri。

OAuth2 在处理请求时引发 InvalidRequestError 因为(根据 RFC 6749 的第 4.1.3 节)

redirect_uri 需要,如果“redirect_uri”参数包含在授权请求中,如第 4.1.1 节所述,并且它们的值必须相同。

引发 InvalidRequestError 的服务器代码

0 投票
1 回答
1373 浏览

python - 带有 Authlib 0.11 的 JWT 令牌生成器

首先:非常感谢 Authlib 创建者/其他开源创建者和支持者。

我想让 Authlib 0.11 将 oauth 令牌作为 JWT 返回。我尝试按照 Authlib 网站中提供的文档使用 Authlib 0.11 https://docs.authlib.org/en/latest/flask/2/authorization-server.html#token创建 JWT 令牌生成器。

因为,我是这个主题的新手用户,我仍然无法找出将我的 JWT 令牌生成器方法传递给配置的正确方法:OAUTH2_ACCESS_TOKEN_GENERATOR

任何帮助表示赞赏。

这是我的虚拟 jwt 令牌生成器:

-- 显示我的 JWT 令牌生成器工作的输出并且可以正确解码返回的值 --

首先,为了测试我的 oauth 令牌请求凭据是否正确,我尝试从 Authlib 请求具有正确 client_credentials 和默认 token_generator 的 oauth 令牌。有了这个,我得到了默认的 oauth 令牌。

其次,我使用令牌生成器更新了配置,然后当我请求具有相同客户端凭据的 oauth 令牌时,我收到以下错误:

我知道当我将我的 gen_acc_token() 方法传递给配置时我做错了 - 但无法准确找出问题所在。

一个通过示例 gen_JWT_access_token() 的小代码片段会很棒。

0 投票
1 回答
622 浏览

flask - /oauth/token 上的 POST 始终使用 client_secret_basic

我正在尝试在我的烧瓶应用程序上添加 oauth2(服务器),但/oauth/token端点存在一些问题client_secret_post

我的应用程序确实将以下内容作为表单发布:

我进入日志:

token_endpoint_auth_method似乎没有改变任何东西,它总是返回{"error": "invalid_client"}

我已经尝试添加TOKEN_ENDPOINT_AUTH_METHODS = ['client_secret_post']到我的class AuthorizationCodeGrant(grants.AuthorizationCodeGrant):无效果(也没有任何记录器打印任何东西)。

我在那里错过了什么?

我在我的应用程序中实现的东西或多或少类似于 oauth2 烧瓶示例,这里有一些摘录:

应用程序.py:

app_oauth.py:

和我的蓝图:

编辑:在挖掘之后,它看起来是由 ClientCredentialsGrant 处理的,它只client_secret_basic在默认情况下处理,然后我添加了:

现在验证但响应{"error": "unauthorized_client"}

0 投票
1 回答
57 浏览

flask - 电子邮件而不是密码授予中的用户名

我尝试在 ResourceOwnerPasswordCredentialsGrant 中使用电子邮件而不是用户名我希望请求是这样的

但我收到一个错误{“error”:“invalid_request”,“error_description”:“请求中缺少\“用户名\”。”}

0 投票
1 回答
764 浏览

python-3.x - 使用Authlib时如何修复'function'对象没有属性'create_authorization_url'?

我正在编写一个连接到 Budget Insight https://www.budget-insight.com/的 API,以从最终用户那里获取财务数据。

Budget Insight 在 web 视图上使用 Oauth2 身份验证,要求用户输入其凭据以生成代码,然后交换令牌。

我已经为我的项目安装了 authlib 及其依赖项,并尝试了不同的方法来完成这项工作

第一种方式

第二种方式

其次是

当我访问 /budgea 路由时,两种方式都返回 AttributeError: 'function' object has no attribute 'create_authorization_url'。

0 投票
0 回答
473 浏览

api - 如何在烧瓶 api 服务 (SPA) 中信任 azure 活动目录不记名令牌

我必须将后端 api 从 netcore 替换为 flask python。

后端为通过 oauth 2 隐式流向 Azure Active Directory 进行身份验证的单页应用程序提供 api。

两个应用程序(单页和后端)都在 Azure Active Directory 上单独注册,这篇文章很好地描述了我的场景。

https://devblogs.microsoft.com/premier-developer/using-adal-js-with-angular4/

实际上,我正在尝试通过烧瓶后端实现 oauth api 保护,但我发现的文档和资源始终从登录开始。

在我的情况下,登录是由一个角度应用程序(使用 adal.js)通过隐式流执行的,而不是所有受保护的 api 请求都具有后端应该管理的不记名令牌。

我已经尝试过 authlib、flask-dance 库,但我遗漏了一些东西,我无法执行工作计划。

有人可以帮忙吗?

0 投票
1 回答
300 浏览

python - authlib 中的 Mongodb 支持

我已经了解了lepture的authlib是如何工作的并且我有一点障碍,图书馆中有用于SQLAlchemy的Authorizationcode等模型混合,但它是为sqla设计的,是否可以在mongodb中实现authlib?谢谢你

0 投票
1 回答
170 浏览

python - Python 3、gspread、Authlib - 无法仅在 Linux 上导入名称 certificate_transparency

环境信息

  • 操作系统:Ubuntu 16
  • Python 版本:3.6(venv 内)
  • gspread 版本:3.10

重现步骤

  1. 使用Authlib而不是oauth2clientwith gspread
  2. 使用这里提到的代码。
  3. 尝试使用gc.open.

这是完整的回溯:

到目前为止我已经尝试过:

  1. 检查文件路径是否正确。certificate_transparency.py确实存在于/venv/lib/python3.6/site-packages/cryptography/x509.
  2. 在 Windows 上尝试了相同的方法,它可以正常工作。
  3. 重新安装所有依赖项,包括pyOpenSSL.
  4. 尝试在(venv)Python 控制台中导入它。>>> from cryptography.x509 import certificate_transparency工作正常。

我的代码:

0 投票
1 回答
442 浏览

python - lepture/Authlib 客户端不适用于 OAuth2 授权代码流

我正在尝试使用Authlib实现 OAuth2 提供者和客户端。我按照文档编写提供程序,似乎是正确的,但是客户端在被重定向到身份验证页面并成功确认访问资源后,我收到以下错误:{“error”:“invalid_grant”} . 不幸的是,我找不到原因。

这是我的代码:

模型.py

服务器.py

客户端.py