1 个不稳定版本
0.1.0 | 2024 年 1 月 28 日 |
---|
#504 在 身份验证
16KB
226 行
chkoauth2
chkoauth2 是一个基于 CGI 的包装器,它在执行另一个脚本之前将验证 OAuth2 携带令牌。
chkoauth2 还包括一个 IndieAuth 扩展,它将用户的配置文件 URL 传递给包装的脚本。有关更多信息,请参阅 IndieAuth 规范:[https://indieauth.spec.indieweb.org/#access-token-verification](https://indieauth.spec.indieweb.org/#access-token-verification)
安装
您需要 Rust 和 Cargo 来构建和安装此项目。
要在您的家目录中安装,请运行
cargo install --path .
要禁用 IndieAuth 扩展,请添加 --no-default-features
标志。要安装在其他位置,请使用 --root 标志。有关更多选项,请参阅 cargo install --help
用法
您需要一个可以运行 CGI 脚本的网络服务器,然后您需要一个运行 chkoauth2 的脚本,并带有适当的选项。例如
#!/bin/sh
OAUTH2_CLIENT_ID="<OAuth2 client id>" \
OAUTH2_CLIENT_SECRET="<OAuth2 client secret>" \
chkoauth2 \
https://example.com/oauth/authorize \
https://example.com/oauth/introspect \
--scope create \
another.cgi
示例脚本使用环境变量提供 OAuth2 客户端标识,以与位于 example.com 的 introspection 端点交互。chkoauth2 预期您的 web 服务器在 HTTP_AUTHORIZATION
环境变量中提供授权头。如果头包含有效的 Bearer 令牌,并且令牌授予所需的范围(在这种情况下为“创建”),则 chkoauth2 将调用 another.cgi
。否则,将返回适当的错误。
授予的完整范围列表通过 OAUTH2_SCOPES
环境变量传递给应用程序,允许包装的 CGI 检查可选的范围。如果启用 IndieAuth 扩展,配置文件 URL 将传递到 INDIEAUTH_ME
环境变量中。
chkoauth2 可以将调试和警告信息记录到 stderr。日志级别通过将 RUST_LOG
环境变量添加到 error
、warn
、info
、debug
或 trace
来设置。
贡献
请将反馈、问题或补丁发送到 [email protected]。
许可证
本软件根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE。
依赖项
~7–19MB
~299K SLoC