问题标签 [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.
python - 如何使用 Authlib 和 GSpread 刷新身份验证令牌?
我在 python 应用程序中使用 gspread 来访问一些充当应用程序数据库的后端 Google 表格。用户需要使用应用内浏览器登录应用,并使用通过此方法在 url 中返回的令牌创建 authlib OAuth2 会话。初始登录和访问工作正常,但是当令牌在一小时后超时时,我不再访问工作表并且应用程序中断。
我不知道如何使用 authlib 刷新令牌,我们选择该库的原因是因为它与 gspread 集成,并且它应该为您自动刷新身份验证令牌。我用于登录的代码如下,但一个小时后,gspread 函数open_by_key()
由于身份验证问题而失败。
我曾尝试重新创建 gspread 客户端,但这只是使用相同的令牌。我觉得应该有一种方法可以刷新令牌以将其寿命再延长一个小时,但我找不到如何使用 authlib 来做到这一点。
在浏览器中加载authURL
并让用户登录。浏览器将身份验证响应返回为urlString
authlib - authlib:未使用配置中的一些 client_kwargs
总体上喜欢 authlib。关于https://docs.authlib.org/en/latest/client/frameworks.html 和https://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 中发现。谢谢!
flask - Authlib - 将授权 url 传递为 json
我正在使用 Flask 作为 api 和 Vue js 作为前端来构建一个 SPA。我正在使用 Authlib 进行用户身份验证并计划使用 Facebook OAuth。我已经在Facebook 上尝试过这个例子,它正在工作。但我想以 RESTful 方式构建它。我想要做的是从示例中的 app.py 更改这部分:
到一个json。
库中是否有获取 Facebook 对话框 url 的方法,以便我可以将其作为 json 传递并在 Vue 中进行重定向?
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
提供的存储库重现它authlib
:
https ://github.com/authlib/demo-oauth-client/tree/master/starlette-google-login
app.py 是:
.env
文件是:
对这种新行为有任何想法吗?我完全迷失了。谢谢 !!
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中的调试没有运气,非常感谢帮助!
python - 我们可以在 OAuth2Session 过期前 x 秒刷新令牌吗?
这个问题与authlib python 模块有关:
我正在使用 authlibOAuth2Session
来触发对 API 的大量请求。我refresh_token_url
向 my提供了一个OAuth2Session
,以便 access_token 在过期时无缝刷新。
大多数时候,它运行良好,但有时,我会收到 401 响应(令牌已过期)。我怀疑的是:由于令牌尚未过期,因此在客户端触发了请求,但是在服务器端处理此请求时它已过期...
这是我的问题:有没有办法OAuth2Session
在它过期前 x 秒刷新它的令牌?是否可以添加一个整数属性以OAuth2Session
使此持续时间可配置?
authlib - Authlib fetch_token 问题
当我尝试运行以下内容时:
我收到消息: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我只是按照 Authlib 页面上的示例进行操作。
我错过了什么吗?
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 但仍然没有运气。
有没有人知道如何做到这一点并且可以向我解释如何让它工作。
这是我能找到的关于这个主题的唯一文档,我仍然不清楚。
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 不是真实的)我看不到任何不应该存在的东西。
authlib - authlib:获取令牌时出现 InsecureRequestWarning
我正在使用烧瓶客户端执行 openid 身份验证。但是我收到以下警告
获取令牌时,使用 requests.Session.requests 完成请求。
OAuth2Session
应用修复警告的请求方法。
默认情况下不应该启用验证吗?有没有更优雅的方式来传递 verify=True?