使用 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
安装完成后,Datasette 主菜单中将出现“使用 Auth0 登录”菜单项。
您可以登录,然后访问 /-/actor
页面以查看已认证的 auth0
配置文件的完整详细信息。
然后您可以使用Datasette 权限根据已认证用户授予或拒绝访问 Datasette 的不同部分。
要在本地设置此插件,请先检出代码。然后创建一个新的虚拟环境
cd datasette-auth0
python3 -mvenv venv
source venv/bin/activate
现在安装依赖和测试依赖
pip install -e '.[test]'
运行测试
pytest