跳转到主要内容

使用IndieAuth和RelMeAuth进行Datasette身份验证

项目描述

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 以开始登录过程。

行为者

当用户使用IndieAuth登录时,他们将收到一个标识他们的 ds_actor cookie,看起来像这样

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

如果IndieAuth服务器返回了额外的 "profile" 字段,这些字段将合并到行为者中。您可以通过访问您的Datasette实例上的 /-/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

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

datasette-indieauth-1.2.2.tar.gz (7.5 kB 查看散列)

上传时间

构建分布

datasette_indieauth-1.2.2-py3-none-any.whl (8.2 kB 查看散列)

上传时间 Python 3

支持者