datasette-indieauth 作者 simonw

收藏

README 源代码

datasette-indieauth

PyPI Changelog codecov Tests License

使用 IndieAuth 进行 Datasette 身份验证。

演示

您可以在 datasette-indieauth-demo.datasette.io 尝试最新版本的插件。

安装

将此插件安装在与 Datasette 相同的环境中。

$ datasette install datasette-indieauth

用法

确保您拥有一个支持 IndieAuth 或 RelMeAuth 的域名网站。最简单的方法是将以下 HTML 添加到您的主页,链接到您的个人 GitHub 个人资料

">
<link href="https://github.com/simonw" rel="me">
<link rel="authorization_endpoint" href="https://indieauth.com/auth">

您的 GitHub 个人资料需要链接回您的网站,以证明您的 GitHub 账户应该是该页面的有效身份标识。

现在访问您的 Datasette 实例上的 /-/indieauth 开始登录过程。

Actor

当用户使用 IndieAuth 登录时,他们将收到一个签名的 ds_actor cookie,将其标识为一个 actor,其格式如下

{
    "me": "https://simonwillison.net/",
    "display": "simonwillison.net"
}

如果 IndieAuth 服务器返回了额外的 "profile" 字段,这些字段将合并到 actor 中。您可以访问您的 Datasette 实例上的 /-/actor 查看您当前登录的完整 actor 信息。

使用 restrict_access 插件配置限制访问

您可以使用 Datasette 的权限系统 控制已认证用户的权限 - 默认情况下,已认证用户能够执行与未认证用户相同的操作。

作为一个快捷方式,如果您想完全将您的实例访问权限锁定给特定用户,您可以使用 restrict_access 插件配置选项,如下所示

{
    "plugins": {
        "datasette-indieauth": {
            "restrict_access": "https://simonwillison.net/"
        }
    }
}

这可以是字符串或用户标识符列表。它也可以是空格分隔的列表,这意味着您可以将其与 datasette publish--plugin-secret 配置选项一起使用,以便在部署过程中设置权限,如下所示

datasette publish vercel mydb.db --project my-secret-db \
    --install datasette-indieauth \
    --plugin-secret datasette-indieauth restrict_access https://simonwillison.net/

开发

要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-indieauth
python3 -mvenv venv
source venv/bin/activate

或者如果您正在使用 pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

运行测试

pytest