问题标签 [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 回答
772 浏览

python - 如何使用 Authlib 和 GSpread 刷新身份验证令牌?

我在 python 应用程序中使用 gspread 来访问一些充当应用程序数据库的后端 Google 表格。用户需要使用应用内浏览器登录应用,并使用通过此方法在 url 中返回的令牌创建 authlib OAuth2 会话。初始登录和访问工作正常,但是当令牌在一小时后超时时,我不再访问工作表并且应用程序中断。

我不知道如何使用 authlib 刷新令牌,我们选择该库的原因是因为它与 gspread 集成,并且它应该为您自动刷新身份验证令牌。我用于登录的代码如下,但一个小时后,gspread 函数open_by_key()由于身份验证问题而失败。

我曾尝试重新创建 gspread 客户端,但这只是使用相同的令牌。我觉得应该有一种方法可以刷新令牌以将其寿命再延长一个小时,但我找不到如何使用 authlib 来做到这一点。

在浏览器中加载authURL并让用户登录。浏览器将身份验证响应返回为urlString

0 投票
1 回答
216 浏览

authlib - authlib:未使用配置中的一些 client_kwargs

总体上喜欢 authlib。关于https://docs.authlib.org/en/latest/client/frameworks.htmlhttps://docs.authlib.org/en/latest/client/django.html中描述的 client_kwargs的问题

问题陈述:我试图在 client_kwargs 字典中传递“范围”和“受众”键/值对,但只有“范围”键/值用于生成 URI 以进行授权。我需要通过 Atlassian OAuth2.0 的“观众” https://developer.atlassian.com/cloud/jira/platform/oauth-2-authorization-code-grants-3lo-for-apps/

通过将“audience”="api.atlassian.com" 传递给 oauth.atlassian.authorize_redirect 进行一些修改后找到了解决方法。

问题:oauth.register/AUTHLIB_OAUTH_CLIENTS 中的client_kwargs是否仅用于某些关键字参数?如果是这样,最好在文档中分享它;否则将其与其他所有内容一起设置在配置中会很方便。

此行为在 0.12.1 和 0.13.dev0 中发现。谢谢!

0 投票
2 回答
172 浏览

flask - Authlib - 将授权 url 传递为 json

我正在使用 Flask 作为 api 和 Vue js 作为前端来构建一个 SPA。我正在使用 Authlib 进行用户身份验证并计划使用 Facebook OAuth。我已经在Facebook 上尝试过这个例子,它正在工作。但我想以 RESTful 方式构建它。我想要做的是从示例中的 app.py 更改这部分:

到一个json。

库中是否有获取 Facebook 对话框 url 的方法,以便我可以将其作为 json 传递并在 Vue 中进行重定向?

0 投票
0 回答
305 浏览

python - “oauth.google.authorize_redirect()”返回错误 500:“httpx.exceptions.ConnectTimeout”

我实际上正在使用带有 authlib 的 starlette 框架进行 Google OAuth 身份验证的平台上工作。

从今天开始,我500 Internal Server Error在调用时遇到oauth.google.authorize_redirect(request, redirect_uri)错误httpx.exceptions.ConnectTimeout

我完全迷失了这种新的行为。我可以使用以下demo-oauth-client提供的存储库重现它authlibhttps ://github.com/authlib/demo-oauth-client/tree/master/starlette-google-login

app.py 是:

.env文件是:

对这种新行为有任何想法吗?我完全迷失了。谢谢 !!

0 投票
1 回答
297 浏览

authlib - clients = self.AVAILABLE_CLIENTS[name] KeyError: 'requests' flask authlib client

大家好,

烧瓶和 authlib 有一些问题。我的闪存代码的波纹管截图

运行上面的代码时出现以下错误:

看了例子并做了一些研究,没有运气。找不到任何解决方案...

谢谢你。

托比

更新:根据下面的评论,最新代码:

oauth.webex.authorize_access_token 函数在不带参数的情况下调用时抛出错误。这很奇怪,因为我发现的大多数例子都是这样做的。client_id 和 client_secret 通过 config.py 文件设置。这适用于 oauth.register 函数,但不适用于 authorize_access_token。

另一个问题是,即使使用参数,它也会产生一个有效的令牌。当我调用 get 函数时,出现以下错误:

这是从 authorize_access_token 函数返回的令牌的格式

通过文档,github上的代码和pycharm中的调试没有运气,非常感谢帮助!

0 投票
1 回答
345 浏览

python - 我们可以在 OAuth2Session 过期前 x 秒刷新令牌吗?

这个问题与authlib python 模块有关:

我正在使用 authlibOAuth2Session来触发对 API 的大量请求。我refresh_token_url向 my提供了一个OAuth2Session,以便 access_token 在过期时无缝刷新。

大多数时候,它运行良好,但有时,我会收到 401 响应(令牌已过期)。我怀疑的是:由于令牌尚未过期,因此在客户端触发了请求,但是在服务器端处理此请求时它已过期...

这是我的问题:有没有办法OAuth2Session在它过期前 x 秒刷新它的令牌?是否可以添加一个整数属性以OAuth2Session使此持续时间可配置?

0 投票
0 回答
211 浏览

authlib - Authlib fetch_token 问题

当我尝试运行以下内容时:

我收到消息: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我只是按照 Authlib 页面上的示例进行操作。

我错过了什么吗?

0 投票
1 回答
1135 浏览

github - Airflow GitHub 身份验证失败

我已经有一个 Airflow 的工作实例。我现在正在尝试使用 GitHub Enterprise 身份验证设置 Airflow。就文档而言,可用的资源并不多,而且我在网上没有找到任何好的示例,所以我遇到了一些麻烦。当我将身份验证设置为 false 时,Airflow 实例工作正常,但是当我尝试打开身份验证并启动 Airflow 实例时,我收到以下错误 CRITICAL - Cannot import authentication module airflow.contrib.auth.backends.github_enterprise_auth. Please correct your authentication backend or disable authentication: No module named 'flask_oauthlib'

airflow.cfg文件的相关部分如下:

我尝试完全重新创建我的虚拟 Python 环境并 pip 安装 Flask_OAuthlib 但仍然没有运气。

有没有人知道如何做到这一点并且可以向我解释如何让它工作。

是我能找到的关于这个主题的唯一文档,我仍然不清楚。

0 投票
1 回答
753 浏览

flask - Flask App 的 Authlib 获取 param_error

我正在使用 Authlib 模块来测试 OAuth2 集成。我制作了一个简单的 Flask 应用程序,并尝试使用 Untappd API ( https://untappd.com/api/docs#authentication ) 进行授权。

遵循 Authlib Flask 模块 ( https://docs.authlib.org/en/latest/client/flask.html ) 的指导方针,我成功地被重定向并获得了授权码。

authorize_redirect()重定向我以在 Untappd 授权我的应用程序后,我批准,将我发送到我的回调 url,并在 url 中使用身份验证代码。

我应该能够下次调用authorize_access_token()以获取令牌,但这就是我得到的:

我已经在 authlib 的配置中注册了 client_id、redirect_url、client_secret,所以我不知道缺少什么。使用我在 Postman 中测试并成功收到令牌的授权码

那么我的代码有什么问题?:

我唯一能想到的是授权代码没有在重定向中传递,但无法调试它。在我看来,Authlib 幕后发生的事情并没有得到很好的记录。

更新 我有一个想法要运行print(auth0.__dict__),看看我是否可以看到缺少什么参数。

(id 和 secret 不是真实的)我看不到任何不应该存在的东西。

0 投票
1 回答
101 浏览

authlib - authlib:获取令牌时出现 InsecureRequestWarning

我正在使用烧瓶客户端执行 openid 身份验证。但是我收到以下警告

获取令牌时,使用 requests.Session.requests 完成请求。

OAuth2Session应用修复警告的请求方法。

默认情况下不应该启用验证吗?有没有更优雅的方式来传递 verify=True?