zegnat/mintoken

一个最小的与IndieAuth兼容的令牌端点。

安装: 14

依赖关系: 0

建议者: 0

安全: 0

星标: 14

关注者: 8

分支: 4

开放性问题: 7

类型:项目

2.0.0 2018-05-13 14:47 UTC

This package is not auto-updated.

Last update: 2024-09-20 03:14:36 UTC


README

一个最小的与IndieAuth兼容的令牌端点

多次有人问我是否有可用于与Selfauth一起使用的令牌端点。这是一个最小的解决方案,仅适用于在具有PHP的服务器上发行访问令牌,并且是自托管的。

我自己不需要这样的令牌端点,因此开发这样的端点将违反我的selfdogfooding原则。但我对IndieAuth规范有一般兴趣,所以无论如何都提供了一种实现方法!

设置

  1. 从GitHub下载最新的版本并提取文件。

  2. 创建一个SQLite数据库;以下说明假定数据库名为tokens.db

    您可以从命令行完成此操作

    sqlite3 tokens.db < schema.sql

    如果您愿意,可以使用您喜欢的任何方式创建SQLite数据库,并使用schema.sql创建期望的表。

  3. 在SQLite数据库的settings表中定义受信任的授权端点。Mintoken只会检查这些端点的代码,并将返回的me值视为受信任,无需进一步验证。

    例如,如果我们采用Selfauth的示例设置,端点https://example.com/auth/应该被列入白名单。

    从命令行

    sqlite3 tokens.db 'INSERT INTO settings VALUES ("endpoint", "https://example.com/auth/");'
  4. 将SQLite数据库上传到服务器上的安全目录。请确保它不公开供网络使用!这对于安全性非常重要。

  5. 编辑endpoint.php,使第5行定义正确的路径作为MINTOKEN_SQLITE_PATH的值。

    您应该使用tokens.db的完整路径。例如,define('MINTOKEN_SQLITE_PATH', '../../tokens.db');

  6. endpoint.php放在您的服务器上的任何位置,使其可供网络使用。(这可以与Selfauth在同一文件夹中,以简化操作。)

  7. 使令牌端点可发现。通过定义一个Link HTTP头,或在链接到您的authorization_endpoint的页面的<head>中添加以下内容

    <link rel="token_endpoint" href="https://example.com/auth/endpoint.php">

    href必须指向您的endpoint.php文件。)

许可

BSD零条款许可(0BSD)。请参阅LICENSE文件以获取更多信息。