问题标签 [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.
rest - lepture/authlib OAuth2 客户端和会话有什么区别?
我正在实现一个 OAuth2 客户端应用程序来连接到该服务器。到目前为止,我已经设法使用 Authlib 的OAuth2Session实例获取资源 /api/me 。我已经用OAuthClient试过了,但它没有用,尽管 Client 类有类似的方法,put, post, get, delete
所以它适合访问我想的资源。:/
那么有什么区别,为什么我可以/api/me
使用 Session 的实例访问而无法使用 Client 的实例?
这是我的代码:
python - Python 3.7 Authlib UnsupportedAlgorithmError
我在 Docker 中的 Ubuntu 18.04 上有这个问题。当我在 macOS 上开发这个应用程序时,没有这样的错误。
我用这个 Dockerfile 构建图像:https ://pastebin.com/rG32a0dv
要求.txt:
代码中的用法:
和
整个 Flask 应用程序:https ://pastebin.com/9vVJQL1w
我有错误:
详情:https ://pastebin.com/MjFRce1F
为什么会出现这个错误?我能做些什么来修复它?
python - Authlib jwt 令牌解码在函数内部不起作用
我正在使用authlib库来解码 JWT 令牌。
当我按原样运行时,此代码工作正常。
但是当我将它添加到函数中时它不起作用。通过这个问题,我无法在 FLASK 框架中使用它。下面的代码不起作用。请不要回答检查公钥,因为它在上面的代码中工作正常。
我得到的错误是:
回溯(最近一次通话最后):文件“/home/sathyakugan/PycharmProjects/JWTsample/ss.py”,第 50 行,在电子邮件中,role=getsessions() 文件“/home/sathyakugan/PycharmProjects/JWTsample/ss.py” ,第 39 行,在 getsessions 声明中 = jwt.decode(encoded_jwt, secret) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/authlib/specs/rfc7519/jwt.py”,第 119 行,在 decode data = self._jws.deserialize_compact(s, key_func, decode_payload) File "/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/authlib/specs/rfc7515/jws. py”,第 108 行,在 deserialize_compact self._algorithms、jws_header、payload、key)文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/authlib/specs/rfc7515/util.py ",第 14 行,在 prepare_algorithm_key key = algorithm.prepare_public_key(key) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/authlib/specs/rfc7518/_backends/_key_cryptography.py”中,行28、在prepare_public_key return load_pem_public_key(key, backend=default_backend()) 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/primitives/serialization.py”中,行24、在load_pem_public_key返回backend.load_pem_public_key(data)文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”,第1040行,在 load_pem_public_key self._handle_key_loading_error() 文件“/home/sathiyakugan/PycharmProjects/Python/venv/lib/python3.5/site-packages/cryptography/hazmat/backends/openssl/backend.py”,第 1291 行,在 _handle_key_loading_error 中引发 ValueError(“无法反序列化密钥数据。”) ValueError:无法反序列化密钥数据。
请帮助我哪里出错了。我一直在努力解决这个问题 2 天。请帮忙。
python - Authlib 令牌未保存在数据库中
我正在尝试通过用户名和密码提供身份验证,这在我的头撞到墙上几个小时后才起作用。
但是还有一件事我想不通。当我发出一个令牌时,我没有在我的数据库中得到一个令牌
但是令牌在超时之前是有效的。但它保存在哪里?没有地方可以检查哪些令牌仍然有效。
即使我设置了,我也没有从端点获得刷新令牌
我使用了authlib 示例来生成我的代码。但是我没有添加Implic
,Client
和Authorization
grant,因为我还不明白它们。
任何帮助都是合适的,因为我真的想了解 Authlib 和 OAuth2 是如何工作的。
windows - 从 pycharm 运行 authlib 示例服务器?
我刚刚下载了这个项目。尝试从命令行运行它,一切正常。尝试从 pycharm 运行它 - 我收到此错误:
c:\Users\Ignas\Anaconda3\envs\ugpsts\python.exe -m flask run Traceback(最近一次调用最后):文件“C:\Users\Ignas\Anaconda3\envs\ugpsts\lib\runpy.py”,第 183 行,在 _run_module_as_main mod_name、mod_spec、code = _get_module_details(mod_name, _Error) 文件“C:\Users\Ignas\Anaconda3\envs\ugpsts\lib\runpy.py”,第 142 行,在 _get_module_details 中返回 _get_module_details(pkg_main_name, error ) 文件“C:\Users\Ignas\Anaconda3\envs\ugpsts\lib\runpy.py”,第 109 行,在 _get_module_details 导入中(pkg_name) 文件“C:\Users\Ignas\Anaconda3\envs\ugpsts\lib\site-packages\flask__init__.py”,第 21 行,从 .app 导入 Flask、请求、响应文件“C:\Users\Ignas \Anaconda3\envs\ugpsts\lib\site-packages\flask\app.py”,第 25 行,来自 . 导入 cli,json 文件“C:\Users\Ignas\Anaconda3\envs\ugpsts\lib\site-packages\flask\cli.py”,第 18 行,导入 ssl 文件“C:\Users\Ignas\Anaconda3\envs \ugpsts\lib\ssl.py",第 98 行,在 import _ssl # 如果我们不能导入它,让错误传播 ImportError: DLL load failed: The specified module could not be found. `
这个错误并没有告诉我太多,可能是什么问题?当我从 cmd 运行它时,我使用flask run
命令。所以没什么不同。
python-requests - 使用 Insomnia 工具测试 authlib 失败
我启动了这个示例服务器并注册了一个用户应用程序。我试图简单地看到一些至少有效的东西,但这非常困难。我不确定这个 authlib 库是完全搞砸了还是我做错了什么。所以我像这样填写所有内容,并得到一个响应,标题中没有提供授权。如果我切换到标题选项卡并添加名为“授权”的标题并在值字段中写入一些内容,我会收到我提供无效令牌的响应。但据我了解,Insomnia 处理这个和 1:获取令牌 2:执行我想要的请求(在本例中为 GET:/api/me)。那么问题出在哪里,为什么这个库不能按预期工作?
python - Python authlib JWT 算法使用验证
我用 python 模块authlib创建了一个烧瓶网络应用程序。我的问题是关于在路由包装器中验证收到的 JWT。当我验证令牌及其有效负载时,我不太确定如何确保它使用正确的 HS256 算法进行签名,并且没有设置为 none 以完全绕过安全性。仅从为该库提供的 JWT 文档中我无法理解如何执行此操作 我当前的受限路由包装草稿:
python - 如何在没有 https 的情况下使用 authlib
我想知道是否有办法告诉authlib忽略我的开发环境中缺少 HTTPS 而不是抛出InsecureTransportError
.
python - 如何让 oauth2 服务器生成 JWT 令牌以避免存储令牌
我正在使用authlib开发身份验证服务器。
默认不记名令牌创建是存储在数据库中的随机字符串。
我想要的是生成一个 JWT 并且不将其存储在数据库中。
我正在使用OAUTH2_ACCESS_TOKEN_GENERATOR
选项生成令牌:
如何避免使用client_credentials
授权存储生成的令牌?
django - (missing_code)响应OAuth Django中缺少代码参数
嗨,我正在将 Django Web 应用程序粘合在一起。我需要使用声称使用 OAuth2 的 API 服务对我的应用程序进行身份验证。
从 Providers 开发者门户中,我遵循了手动流程并发送了我的https://provider.com/thirdpartylogin?client_id=clientid&redirect_uri=redirect-uri 并如广告所示我取回了https://your-redirect-url?authCode= temp-auth-code然后将“temp-auth-code”交换为真正的 access_token。手动过程一切正常
在我的网络应用程序中,我使用的是https://github.com/requests/requests-oauthlib,效果很好。我克隆了这个项目https://docs.microsoft.com/en-us/graph/tutorials/python并且能够让一切正常工作。我认为用我的提供者 URL 和参数替换教程参数会很简单,
到目前为止,我的 URL 看起来还不错,但是在我返回回调 url 并且我收到错误“code_missing”后,没有任何效果。可能是我的提供商 URL 命名约定错误吗?请注意我从 OAuth 文档中看到的 authCode“ https://your-redirect-url?authCode=temp-auth-code ”“代码”是标准命名而不是 authCode。我对 Python 和 Django 都是新手,但如果有人能确认这是我的绊脚石,我将不胜感激。