使用Auth0进行用户身份验证的Datasette插件
项目描述
datasette-auth0
使用Auth0进行用户身份验证的Datasette插件
有关此插件如何工作的更多信息,请参阅使用Auth0的简单OAuth身份验证。
安装
在Datasette相同的环境中安装此插件。
$ datasette install datasette-auth0
演示
您可以在datasette-auth0-demo.datasette.io上尝试此插件 - 点击右上角菜单图标,选择“使用Auth0登录”。
初始配置
首先,在Auth0中创建一个新的应用程序。您将需要该应用程序的域、客户端ID和客户端密钥。
域名应该是类似mysite.us.auth0.com
的东西。
将http://127.0.0.1:8001/-/auth0-callback
添加到允许的回调URL列表中。
然后使用metadata.yml
配置这些插件密钥
plugins:
datasette-auth0:
domain:
"$env": AUTH0_DOMAIN
client_id:
"$env": AUTH0_CLIENT_ID
client_secret:
"$env": AUTH0_CLIENT_SECRET
只需要保留client_secret
为秘密,但为了保持一致性,我建议对所有三个都使用$env
机制。
在开发中,您可以运行Datasette并传递环境变量,如下所示
AUTH0_DOMAIN="your-domain.us.auth0.com" \
AUTH0_CLIENT_ID="...client-id-goes-here..." \
AUTH0_CLIENT_SECRET="...secret-goes-here..." \
datasette -m metadata.yml
如果您正在使用datasette publish
进行部署,您可以使用--plugin-secret
传递这些变量。例如,如果您要使用Cloud Run进行部署,您可能需要运行以下命令
datasette publish cloudrun mydatabase.db \
--install datasette-auth0 \
--plugin-secret datasette-auth0 domain "your-domain.us.auth0.com" \
--plugin-secret datasette-auth0 client_id "your-client-id" \
--plugin-secret datasette-auth0 client_secret "your-client-secret" \
--service datasette-auth0-demo
一旦您的Datasette实例部署完成,您需要将其回调URL添加到Auth0中的“允许的回调URL”列表中。
回调URL应该是类似这样的
https://url-to-your-datasette/-/auth0-callback
使用方法
安装后,主菜单中将出现“使用Auth0登录”菜单项。
您可以通过登录并访问 /-/actor
页面来查看已验证的 auth0
个人资料的详细信息。
然后,您可以使用 Datasette 权限 根据已验证用户授予或拒绝对 Datasette 不同部分的访问。
开发
要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境
cd datasette-auth0
python3 -mvenv venv
source venv/bin/activate
现在安装依赖项和测试依赖项
pip install -e '.[test]'
要运行测试
pytest