appelit / laravel-srp
Laravel SRP(安全远程密码)认证扩展
Requires
- php: >= 7.2
- ext-json: *
- illuminate/auth: ^5.6
- illuminate/cache: ^5.6
- illuminate/config: ^5.6
- illuminate/console: ^5.6
- illuminate/contracts: ^5.6
- illuminate/encryption: ^5.6
- illuminate/http: ^5.6
- illuminate/routing: ^5.6
- illuminate/support: ^5.6
- illuminate/validation: ^5.6
- phpseclib/phpseclib: ^2.0
- simon_massey/thinbus-php-srp: ^1.8
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.19.10
- orchestra/testbench: ^3.6
- phpunit/phpunit: ^7.2
This package is not auto-updated.
Last update: 2020-08-06 11:21:38 UTC
README
SRP for Laravel
关于
Laravel SRP为SRP(安全远程密码)协议的服务器端提供了一层简单的封装,用于您的认证流程。
安装
此软件包需要PHP 7.2和Laravel 5.6或更高版本。要安装软件包,请使用以下命令。
composer require appelit/laravel-srp
使用
该软件包提供了一个作为 \SRP 别名的 Facade,可以使用此 Facade 容易地访问 APPelit\SRP\SrpService。在 SrpService 中有 2 个方法,challenge 和 authorize,分别代表流程中的挑战和授权部分。挑战和授权都返回一个包含客户端所需所有信息的类,并实现了 Illuminate\Contracts\Support\Jsonable 接口,因此可以直接从控制器方法返回。APPelit\SRP\AuthenticateResponse 还包含生成的会话密钥(该密钥不会被编码到响应中,永远也不应该这样做),如果需要,可以将此密钥存储在某种形式的(安全)缓存或存储中,以供以后使用(用途包括消息签名和(对称)加密)。
该软件包还提供了一个 APPelit\SRP\Http\AuthenticatesUsers 特性(模仿 Laravel 框架中同名的特性),该特性公开了 challenge 和 response 方法,这些方法用作路由端点。为了不强制任何路由结构(或因此造成问题),路由本身未定义,应将其添加到 routes/web.php 和/或 routes/api.php 中。
该软件包为所需的 SRP 参数提供了一些合理的默认值,然而,建议使用您自己的参数。因此,该软件包提供了一个命令(srp:generate)来生成所需的值并将它们插入到您的 .env 文件中。建议使用 openssl dhparam(如果您不确定,请搜索它)来生成 N 和 g 参数,因为使用 PHP 生成就需要(非常)长时间,并且可能不太安全。您可以使用 -F [pathToFile] 开关提供生成的 dhparam.pem 文件,它将被解码并使用,而不是生成它。请注意,您必须配置客户端使用相同的值。
由于该软件包是围绕 "thinbus-srp-php" 软件包构建的,因此建议为前端实现使用 "thinbus-srp" npm 软件包。
警告 此软件包目前处于 alpha 版本,不应(尚)在生产环境中使用。
测试
注意 尚未实现测试,如果您使用此软件包并且知道如何编写测试,请随时贡献它们。
使用以下命令运行测试
vendor/bin/phpunit
变更日志
请参阅变更日志获取最近更改的更多信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件mark@appelit.com与我们联系,而不是使用问题跟踪器。
致谢
支持我们
APPelit是一家位于荷兰的IT公司。您可以在我们的网站上找到我们所有开源项目的概述这里。
许可证
本项目为开源项目,并受MIT许可证许可。