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

authlib - 限制令牌范围服务器端

我的登录程序允许管理员选择他们想要登录的帐户。为此,我可以像往常一样以该特定用户身份登录并发出授权码。

现在,我想要扩展此设置以允许其他一些管理员以“只读”访问权限登录。这可以通过使用某些范围并删除其他一些范围轻松地映射到我们的 API。

为了使 oauth 进程正常工作,我确实需要一种方法来发布 oauth 令牌,该令牌的范围受到服务器端的限制(范围小于实际的客户端 - 服务器端,因为强制执行只读)。

我想我可能需要编写一个新的 GrantType 并且可能还必须以某种方式跟踪状态,但我不清楚create_authorization_response()在这种情况下我应该如何使用。

0 投票
1 回答
136 浏览

django - Django REST Framework 在文件之间共享类实例

我的apps.pyready()方法中有一些代码使用authlib 模块加载一些Oauth 提供程序。基本上我正在这样做(apps.py):

错误:

这注册了一些可以使用oauth变量使用的 oauth 凭据(信息)(例如oauth.get_authorization_url(),它为我获取了该 Oauth 提供程序的授权 URL。

现在,我有很多不同的文件(我将 views.py 拆分为多个文件)。如何访问这些文件中的这个 oauth 变量?我已经尝试过使用 django 缓存,但是当我尝试访问该变量时,我得到了一个奇怪的溢出错误。

你会怎么推荐?

oauth 类在文件中本地运行良好,我只需要将其传输到其他文件

0 投票
1 回答
43 浏览

keyerror - 获取缺少`code`参数的KeyError

我将 authlib 与 MSAD 一起使用,并且在线获取 KeyError: https ://github.com/lepture/authlib/blob/master/authlib/integrations/flask_client/integration.py#L43

我的问题是,请求中是否必须始终存在code参数,或者恕我直言,这是错误,应该通过get()与状态相同的方法进行检查。

我将它与烧瓶一起使用,并在正确注册 MSAD 客户端后尝试方法authorize_access_token(),从这里我到达上面提到的代码点并得到错误。

感谢您的任何建议。

维生素

0 投票
1 回答
786 浏览

python - Python authlib flask - 如何明确地进行授权重定向?

我有“代码授权流程”登录,authlib 烧瓶集成运行良好:

出于某种原因,我决定尝试使重定向更加明显。在重定向到对某些人来说可能更陌生的登录页面之前,向用户展示我的应用程序片刻。

现在这种作品:

但是,当我在登录后被重定向回“授权”时,我得到authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF Warning! State not equal in request and response.了我认为是因为我没有保存aurl['state'].

但我该怎么做呢?我很难弄清楚 authorize_redirect 是如何做到的。
也许有更好的方法?任何帮助表示赞赏!

0 投票
1 回答
261 浏览

python - Python authlib flask - 如何正确执行密码授予流程?

我有“密码授予流程”登录,authlib 烧瓶集成运行良好:

但是,在上一个问题中,我被建议不要fetch_access_token像这样使用,因为它没有记录在烧瓶集成中,authorize_access_token而是使用。这失败并出现错误werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'code'

那么使用烧瓶集成进行“密码授予流程”的正确方法是什么?
欢迎任何建议。

0 投票
1 回答
833 浏览

python - Python authlib flask - 如何处理刷新令牌?

到目前为止,我只需要 oauth2 来登录,但我觉得要相当完整,我的应用程序仍应处理刷新令牌。

我对 oauth 还很陌生,所以这是我的理解:
通过保持访问令牌的生命周期较短,但刷新令牌的生命周期较长,您可以强制客户端定期“签入”以更新访问令牌,从而保持更多的控制权。

但是如何使用 authlib 和烧瓶集成来实际做到这一点?
FlaskRemoteApp 上似乎没有 refresh_token(),而且我还没有找到任何显示此的示例代码。

这似乎可以得到一个新的令牌

但是在随后使用新的 access_token 进行 api 调用时失败。
我想可能是服务器错误,或者我需要等待旧令牌过期才能使用新令牌?expires_at 时间不断更新,在这种情况下对我来说毫无意义。

如果有人能解释 refresh_token 打算如何与 authlib 和烧瓶一起使用,那就太好了。

0 投票
1 回答
177 浏览

azure - Authlib 的 Azure 登录引发 invalid_claim: Invalid claim "iss"

我目前使用 Google 登录没有问题,我的 Starlette 应用程序使用 Authlib,但 Azure 在执行以下操作时抛出此无效声明“iss”错误:

拜托,任何帮助都会很棒。谷歌搜索它我没有找到任何东西。

完整的代码片段:

我认为问题可能在于使用这些:

问题应该是放置在 AZURE_CONF_URL 链接中的“颁发者”:“https://login.microsoftonline.com/{tenantid}/v2.0”。我见过人们有同样的问题。

0 投票
1 回答
669 浏览

python - Python authlib flask - 如何撤销令牌/注销

在我目前的情况下,我的烧瓶应用程序可能是唯一使用 Oauth 服务器的应用程序。
在这种情况下,我想让我的注销按钮实际撤销访问令牌。
但是如何使用 authlib 烧瓶集成来做到这一点?
我必须设置一个新OAuth2Session的才能使用revoke_token()吗?
我不认为里面有一个隐藏的FlaskRemoteApp
而且我不认为烧瓶注册表需要一个revoke_token_url或类似的东西?

欢迎任何建议。

0 投票
1 回答
112 浏览

python - Python 请求 authlib - SSLCertVerificationError CERTIFICATE_VERIFY_FAILED

如何使 Autlib/ 请求在 Windows 上使用自签名证书?

有关于如何使用环境变量指向 CA 捆绑包的文档,但在我的情况下,我很难做到这一点,因为我找不到指定 keystorepass 或 keyalias 的选项。在我的情况下,将 verify=False 传递给请求也可以,但 authlib 没有这样的选项。

欢迎提出替代解决方案的建议。

0 投票
0 回答
228 浏览

python-3.x - Authlib:json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

我正在使用Authlib 博客中的这篇博文将 google oauth 添加到 FastAPI 应用程序我来自伊朗,当我的 VPN 开启时一切正常,但是当它关​​闭并且我尝试使用伊朗 IP 使用谷歌登录应用程序时,Authlib 无法解析 id_token 并显示以下错误:

json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

这是我使用的代码:

错误在线出现oauth.google.parse_id_token,我看到命令行中打印了令牌。我什至在这里手动解析了令牌,它很好,它有用户的数据。

当用户拥有伊朗 IP 时,为什么 Authlib 无法解析令牌?是因为谷歌不允许伊朗人使用大部分服务的制裁吗?以及如何更改代码以另一种方式解析令牌?