问题标签 [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.
authlib - 限制令牌范围服务器端
我的登录程序允许管理员选择他们想要登录的帐户。为此,我可以像往常一样以该特定用户身份登录并发出授权码。
现在,我想要扩展此设置以允许其他一些管理员以“只读”访问权限登录。这可以通过使用某些范围并删除其他一些范围轻松地映射到我们的 API。
为了使 oauth 进程正常工作,我确实需要一种方法来发布 oauth 令牌,该令牌的范围受到服务器端的限制(范围小于实际的客户端 - 服务器端,因为强制执行只读)。
我想我可能需要编写一个新的 GrantType 并且可能还必须以某种方式跟踪状态,但我不清楚create_authorization_response()
在这种情况下我应该如何使用。
django - Django REST Framework 在文件之间共享类实例
我的apps.pyready()
方法中有一些代码使用authlib 模块加载一些Oauth 提供程序。基本上我正在这样做(apps.py):
错误:
这注册了一些可以使用oauth
变量使用的 oauth 凭据(信息)(例如oauth.get_authorization_url()
,它为我获取了该 Oauth 提供程序的授权 URL。
现在,我有很多不同的文件(我将 views.py 拆分为多个文件)。如何访问这些文件中的这个 oauth 变量?我已经尝试过使用 django 缓存,但是当我尝试访问该变量时,我得到了一个奇怪的溢出错误。
你会怎么推荐?
oauth 类在文件中本地运行良好,我只需要将其传输到其他文件
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()
,从这里我到达上面提到的代码点并得到错误。
感谢您的任何建议。
维生素
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 是如何做到的。
也许有更好的方法?任何帮助表示赞赏!
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'
那么使用烧瓶集成进行“密码授予流程”的正确方法是什么?
欢迎任何建议。
python - Python authlib flask - 如何处理刷新令牌?
到目前为止,我只需要 oauth2 来登录,但我觉得要相当完整,我的应用程序仍应处理刷新令牌。
我对 oauth 还很陌生,所以这是我的理解:
通过保持访问令牌的生命周期较短,但刷新令牌的生命周期较长,您可以强制客户端定期“签入”以更新访问令牌,从而保持更多的控制权。
但是如何使用 authlib 和烧瓶集成来实际做到这一点?
FlaskRemoteApp 上似乎没有 refresh_token(),而且我还没有找到任何显示此的示例代码。
这似乎可以得到一个新的令牌
但是在随后使用新的 access_token 进行 api 调用时失败。
我想可能是服务器错误,或者我需要等待旧令牌过期才能使用新令牌?expires_at 时间不断更新,在这种情况下对我来说毫无意义。
如果有人能解释 refresh_token 打算如何与 authlib 和烧瓶一起使用,那就太好了。
azure - Authlib 的 Azure 登录引发 invalid_claim: Invalid claim "iss"
我目前使用 Google 登录没有问题,我的 Starlette 应用程序使用 Authlib,但 Azure 在执行以下操作时抛出此无效声明“iss”错误:
拜托,任何帮助都会很棒。谷歌搜索它我没有找到任何东西。
完整的代码片段:
我认为问题可能在于使用这些:
问题应该是放置在 AZURE_CONF_URL 链接中的“颁发者”:“https://login.microsoftonline.com/{tenantid}/v2.0”。我见过人们有同样的问题。
python - Python authlib flask - 如何撤销令牌/注销
在我目前的情况下,我的烧瓶应用程序可能是唯一使用 Oauth 服务器的应用程序。
在这种情况下,我想让我的注销按钮实际撤销访问令牌。
但是如何使用 authlib 烧瓶集成来做到这一点?
我必须设置一个新OAuth2Session
的才能使用revoke_token()
吗?
我不认为里面有一个隐藏的FlaskRemoteApp
?
而且我不认为烧瓶注册表需要一个revoke_token_url
或类似的东西?
欢迎任何建议。
python - Python 请求 authlib - SSLCertVerificationError CERTIFICATE_VERIFY_FAILED
如何使 Autlib/ 请求在 Windows 上使用自签名证书?
有关于如何使用环境变量指向 CA 捆绑包的文档,但在我的情况下,我很难做到这一点,因为我找不到指定 keystorepass 或 keyalias 的选项。在我的情况下,将 verify=False 传递给请求也可以,但 authlib 没有这样的选项。
欢迎提出替代解决方案的建议。
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 无法解析令牌?是因为谷歌不允许伊朗人使用大部分服务的制裁吗?以及如何更改代码以另一种方式解析令牌?