Download the PHP package dsweixin/api-auth without Composer
On this page you can find all versions of the php package dsweixin/api-auth. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package api-auth
api-auth
laravel API 鉴权
laravel 的 API 鉴权包, api-auth
采用密钥加密的鉴权方式,只要客户端不被反编译从而泄露密钥,该鉴权方式理论上来说是安全的(不考虑量子计算机的出现)。
安装
配置
-
注册
ServiceProvider
:laravel 5.5+ 版本不需要手动注册
-
发布配置文件和中间件
-
在
App\Http\Kernal
中注册中间件 -
添加
role
然后按照格式把
access_key
和secret_key
添加到,config/api_auth.php
里面的roles
数组中。 -
自定义签名方法 (可选)
config/api_auth.php
中的encrypting
可以修改为自定义的签名函数,该函数将传入三个参数: 密钥:$secret_key
、随机字符串:$echostr
、时间戳:$timestamp
,返回签名后的字符串。该函数默认为: -
自定义签名校验规则(可选)
config/api_auth.php
中的rule
可以修改为自定义的校验函数,该函数将传入三个参数: 密钥:$secret_key
、客户端签名:$signature
、服务端签名:$server_signature
,必须返回布尔值。该函数默认为: -
自定义错误处理(可选)
config/api_auth.php
中的error_handler
可以修改为自定义的错误处理函数,该函数将传入两个参数: 请求:$request
、错误码:$code
。该函数默认为:$code
可能是以下几个值中的一个:LaravelApiAuth::LACK_HEADER
-> 缺少请求头。LaravelApiAuth::ACCESS_KEY_ERROR
->access_key
错误。LaravelApiAuth::SIGNATURE_ERROR
-> 签名错误。LaravelApiAuth::SIGNATURE_LAPSE
-> 签名失效,客户端签名时间和服务端签名时间差超过设置的timeout
值。LaravelApiAuth::SIGNATURE_REPETITION
-> 签名重复,规定时间内出现两次或以上相同的签名。
使用
路由中
通过验证后
$request
会添加一个client_role
字段,该字段为客户端的角色名称。
前端
本例子为
web
前端的例子,其他客户端同理,生成签名并且带上指定参数即可正常请求。 通过自定义签名方法和自定义校验方法,可以使用其他加密方法进行签名,例如哈希
等其他加密算法。 更多自定义可以直接修改App\Http\Middleware\ApiAuth
中间件 。有问题请开issue
。