zegnat / mintoken
一个最小的与IndieAuth兼容的令牌端点。
Requires (Dev)
- cweiske/php-sqllint: ^0.2.2
- squizlabs/php_codesniffer: ^3.2
This package is not auto-updated.
Last update: 2024-09-20 03:14:36 UTC
README
多次有人问我是否有可用于与Selfauth一起使用的令牌端点。这是一个最小的解决方案,仅适用于在具有PHP的服务器上发行访问令牌,并且是自托管的。
我自己不需要这样的令牌端点,因此开发这样的端点将违反我的selfdogfooding原则。但我对IndieAuth规范有一般兴趣,所以无论如何都提供了一种实现方法!
设置
-
从GitHub下载最新的版本并提取文件。
-
创建一个SQLite数据库;以下说明假定数据库名为
tokens.db
。您可以从命令行完成此操作
sqlite3 tokens.db < schema.sql
如果您愿意,可以使用您喜欢的任何方式创建SQLite数据库,并使用
schema.sql
创建期望的表。 -
在SQLite数据库的
settings
表中定义受信任的授权端点。Mintoken只会检查这些端点的代码,并将返回的me
值视为受信任,无需进一步验证。例如,如果我们采用Selfauth的示例设置,端点
https://example.com/auth/
应该被列入白名单。从命令行
sqlite3 tokens.db 'INSERT INTO settings VALUES ("endpoint", "https://example.com/auth/");'
-
将SQLite数据库上传到服务器上的安全目录。请确保它不公开供网络使用!这对于安全性非常重要。
-
编辑
endpoint.php
,使第5行定义正确的路径作为MINTOKEN_SQLITE_PATH
的值。您应该使用
tokens.db
的完整路径。例如,define('MINTOKEN_SQLITE_PATH', '../../tokens.db');
-
将
endpoint.php
放在您的服务器上的任何位置,使其可供网络使用。(这可以与Selfauth在同一文件夹中,以简化操作。) -
使令牌端点可发现。通过定义一个
Link
HTTP头,或在链接到您的authorization_endpoint
的页面的<head>
中添加以下内容<link rel="token_endpoint" href="https://example.com/auth/endpoint.php">
(
href
必须指向您的endpoint.php
文件。)
许可
BSD零条款许可(0BSD)。请参阅LICENSE文件以获取更多信息。