ivanciric / ecdsa-auth
基于ECDSA的Laravel/Dingo API认证
dev-master
2018-11-23 14:45 UTC
Requires
- dingo/api: 2.0.0-alpha1
- kornrunner/keccak: ^1.0
- simplito/elliptic-php: 1.0.4
This package is auto-updated.
Last update: 2024-09-24 04:54:43 UTC
README
基于公私钥签名的无密码认证。
ECDSA实现,用于Laravel/Dingo API,借助elliptic-php和keccak包。
安装
composer require ivanciric/ecdsa-auth
库使用包自动发现功能,因此您不需要手动设置服务提供者。
发布包配置
php artisan vendor:publish
配置
发布配置后,您可以在config/ecdsaauth.php中编辑可用的选项。
使用方法
此包假设您已设置Dingo API。编辑config/api.php文件并将auth键设置为以下内容
'auth' => [
'ivanciric\EcdsaAuth\Authenticator'
]
您需要在包配置中设置lookup_key和key_lookup_field以反映您的用户属性。
通过指定中间件来保护路由
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
...
});
创建负载
授权头应包含以下形式的负载
Eth eyJlbWFpbCI6ImhhQG1hLnRvIiwibWVzc2FnZSI6IjkyNThhNjQ0Y2FmZTZ...
或
Ecdsa eyJlbWFpbCI6ImhhQG1hLnRvIiwibWVzc2FnZSI6IjkyNThhNjQ0Y2FmZTZ...
负载本身是一个具有以下属性的base64编码json
{
"email": "h@ma.to", // user's email or alternative lookup field
"message": "message that you've signed", // string
"signature": "3046022100a94c1a..." // signed message
}
所有属性都是可配置的。