问题标签 [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.
openid-connect - Authlib OpenID Connect 刷新令牌
关于https://github.com/lepture/authlib,我想在刷新令牌响应中返回一个 JWT 令牌。现在有可能吗?我正在寻找一个RefreshOIDCTokenGrant
或类似的东西。我应该在我的 中手动完成RefreshTokenGrant
吗?
documentation - 函数 get_token_user_sub() 应该做什么?
我目前正在使用 authlib 构建 OAuth 2.0 端点。在创建令牌自省端点的阶段,官方文档get_token_user_sub(token)
在方法中建议了一个函数introspect_token()
。它应该返回什么?在这种情况下,什么是“子”?
python-3.x - 使用客户端凭据时,authlib 是否支持刷新我的访问令牌?
我是 authlib 的新手,在查看文档时提到它支持password
grant_type 的“自动刷新”。
我想知道库是否能够在使用时检测到当前关联的令牌何时过期,client_credentials
然后为我请求一个新的访问令牌。(为我做整个 OAuth 舞蹈)
检查我需要做的每一个电话,我是否得到了 401,然后触发获取新令牌的动作,这似乎很难看。
这里有最佳实践吗?可以以某种方式将其添加为装饰器吗?
django - Django authlib MismatchingStateError on authorize_access_token
我在 django authlib 客户端https://docs.authlib.org/en/latest/client/django.html上有一些问题。在重定向 url 上,authorize_access_token 引发 MismatchingStateError()。
这是我的代码:
和堆栈跟踪:
如果有人对如何解决它有一个想法,那就太好了。
感谢你们 :)
python - Google OAuth 不会在 authlib.starlette_client 中返回 refresh_token
嗨,我正在使用 authlib/FastAPI/Google 开发一个用于登录过程的网络应用程序,并希望保留refresh_token
这样我可以让用户在应用程序中保持足够的时间。
我遵循了https://docs.authlib.org/en/latest/client/starlette.html中的标准程序
但是,refresh_token
即使我指定了access_type='offline'
. 如果我的应用程序已经在我的帐户中注册,我也添加了一个参数prompt='content'
。
我错过了什么吗?
此外,保持refresh_token
一个长期运行的用户应用程序的最佳方式是什么?我不喜欢打扰用户多次登录。
提前致谢!
django - Authlib vs OAuthlib:这些库是一样的吗?
我是 OAuth2.0 和 OpenID 协议领域的初学者。我想为多个应用程序实现一个自定义服务器 - 提供程序。因此,将其用于单点登录 (SSO)。我想和python一起工作。到目前为止,我已经在 Python 中找到了四个包,用于 OAuth2.0 和 OpenID Connect 服务器实现:pyoidc、django-oidc-provider、OAuthlib 和 Authlib 的 Django OAuth Toolkit (DOT)。我试图阅读和理解 pyoidc,但它并不是那么有用和简单,缺少基本的东西。我已经尝试过 django-oidc-provider 并且我真的很满意,整个实现非常简单。因此,在这些试验之后,我只剩下 Django OAuth Toolkit(由 OAuthlib 提供)和 Authlib。有人试过吗?这些包是一样的吗?Authlib 是 OAuthlib 库的更新版本吗?到现在为止我唯一知道的信息,
*每一个答案或建议或个人经验都会非常有帮助,并且总是很感激!
再次感谢你的帮助。
python - eBay 和 Authlib 非常规令牌类型
我正在尝试使用Authlib库来访问新的 eBay REST API(作为授权码授予)
这是我的代码;
问题是 eBay 的令牌响应有一个非常规的令牌类型,名为“用户访问令牌”而不是“持有者”。因此我得到这个错误;
我注意到Authlib 文档中非标准部分的合规性修复,但无法弄清楚如何进行此修复,甚至无法以这种方式进行修复。
authlib - 使用 authlib 设置知名 url 的任何示例?
我正在评估 Authlib 以设置 OpenID 连接和 Oauth2.0 授权服务器。到目前为止,它对我来说效果很好。我试图查看是否可以轻松发布众所周知的 url,以便我可以让用 SpringBoot 编写的应用程序与 Authlib 服务器发出的 JWT 一起工作。
https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver
我找不到太多关于如何发布知名 url 端点的文档或示例。在这方面的任何指导,将不胜感激。
python-3.x - 在 Google App Engine 上使用 flask_client 自动或手动刷新访问令牌
我成功地使用第 3 方 OAuth2 提供程序 (Xero) 授权我的应用程序,但无法自动或手动刷新令牌。
文档建议 authlib 可以自动执行此操作。我从 Authlib 文档中尝试了两种不同的方法,在烧瓶客户端文档中,他们给出了“通过信号自动更新令牌”的示例,在Web 客户端文档中,他们注册了“update_token”函数。
使用任何一种方法,都不会尝试刷新令牌,请求会使用过期令牌传递给 Xero,我收到错误消息,唯一继续的方法是使用 Xero 手动重新授权应用程序。
这是来自网络客户端文档的“update_token”方法的相关代码:
我将我的令牌存储在以下 NDB 模型中:
为了完整起见,这是我存储来自 Xero 的初始响应的方式(效果很好):
如何让自动刷新工作,以及如何在使用烧瓶客户端时手动触发刷新请求,以防自动刷新失败?