datasette-auth0 作者 simonw

星标

README 源代码

datasette-auth0

PyPI Changelog Tests License

使用 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