bnsoftware / lti-1p3-tool
这是一个用于在PHP中构建IMS认证的LTI 1.3工具提供者的库。
Requires
- firebase/php-jwt: ^5.5|^6.0
- guzzlehttp/guzzle: ^7.0
- phpseclib/phpseclib: ^2.0
Requires (Dev)
- jubeki/laravel-code-style: ^1.0
- mockery/mockery: ^1.4
- nesbot/carbon: ^2.43
- phpunit/phpunit: ^9.5
- dev-master
- v5.2.1
- v5.2.0
- v5.1.11
- v5.1.10
- v5.1.9
- v5.1.8
- v5.1.7
- v5.1.6
- v5.1.5
- v5.1.4
- v5.1.3
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.1
- v5.0.0
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.1.1
- v1.1.0
- v1.0.0
- v0.0.3.8
- v0.0.3.7
- v0.0.3.6
- v0.0.3.5
- v0.0.3.4
- v0.0.3.3
- v0.0.3.2
- v0.0.3.1
- v0.0.3.0
- v0.0.2.8
- v0.0.2.7
- v0.0.2.6
- v0.0.2.5
- v0.0.2.4
- v0.0.2.3
- v0.0.2.2
- v0.0.2.1
- v0.0.2
- v0.0.1
- dev-deep-link
This package is auto-updated.
Last update: 2024-09-16 18:45:23 UTC
README
这是一个正在进行中的项目 - 目前不应使用此库!
如果您正在寻找一个可靠的LTI v1.3 PHP包,请务必查看由Packback创建的packbackbooks/lti-1p3-tool。
这是一个用于在PHP中构建IMS认证的LTI 1.3工具提供者的库。
此库允许工具提供者(您的应用程序)从工具消费者(即LMS)接收LTI启动。它验证LTI启动,并允许应用程序与名称角色配置服务(获取LMS课程的名单)和作业评分服务(更新LMS中课程的学生的成绩)等服务交互。
此库是从由Packback创建的packbackbooks/lti-1p3-tool分叉的,而该工具又是由IMSGlobal/lti-1-3-php-library分叉的,最初由@MartinLenord创建。
安装
运行
composer require bnsoftware/lti-1p3-tool
在您的代码中,您现在可以使用BNSoftware\Lti1p3
命名空间中的类来访问库。
配置JWT
在启动应用程序时添加以下内容。
Firebase\JWT\JWT::$leeway = 5;
实现数据存储接口
此库使用三种方法来存储和访问数据:缓存、Cookie和数据库。所有三种都必须实现,以便库能够工作。您可以根据以下接口创建自己的自定义实现:
BNSoftware\Lti1p3\Interfaces\ICache
BNSoftware\Lti1p3\Interfaces\ICookie
BNSoftware\Lti1p3\Interfaces\IDatabase
查看Laravel实现指南以获取示例(或直接复制/粘贴代码)。如果您不希望实现自己的,则在BNSoftware\Lti1p3\ImsStorage\
中提供了缓存和Cookie存储的遗留实现。但是,您必须实现自己的数据库。
创建JWKS端点
可以为单个注册或从包含KID
和私钥的数组生成JWKS(JSON Web Key Set)端点。
use BNSoftware\Lti1p3\JwksEndpoint; // From issuer JwksEndpoint::fromIssuer($database, 'http://example.com')->outputJwks(); // From registration JwksEndpoint::fromRegistration($registration)->outputJwks(); // From array JwksEndpoint::new(['a_unique_KID' => file_get_contents('/path/to/private/key.pem')])->outputJwks();
文档
Wiki提供了有关如何使用此库的更详细信息,包括Laravel实现指南。
贡献
对于改进、建议或错误修复,请发起拉取请求或问题。在发起拉取请求之前,请为您的更改添加自动化测试,确保所有测试通过,并修复任何linting错误。
测试
可以使用以下命令运行自动化测试
composer test
可以使用以下命令运行linting
# Display linting errors composer lint # Automatically fix linting errors composer lint-fix