larva/laravel-auth-signature-guard 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

larva/laravel-auth-signature-guard

Composer 安装命令:

composer require larva/laravel-auth-signature-guard

包简介

This is a Laravel auth guard for the signature.

README 文档

README

适用于 Laravel Auth 的签名看守器,基于 Laravel Passport

安装

composer require larva/laravel-auth-signature-guard
//认证配置
/config/auth.php

//增加一个看守器

'guards' => [
	'web'=>[],//原WEB的
	'api'=>[],//原API
	'signature'=>[//新增的
		'driver'=>'signature'
		'provider'=>'users',
	]
]
// 使用时在控制器中

class SDKController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:signature');
    }
}

//按照以上配置,该控制器所有的方法都会经过签名看守器认证。

公共请求参数

公共请求参数是每个接口都需要使用到的请求参数。

名称 类型 描述
app_id String 访问服务使用的应用ID。
timestamp Int 请求的时间戳,10位数整形。
signature String 签名结果串。
signature_method String 签名方式,取值:HMAC-SHA1/HMAC-SHA256
signature_version String 签名版本,取值:1.0
signature_nonce String 唯一随机数,用于防止网络重放攻击。在不同请求间要使用不同的随机数值。

参数签名计算 例子

$appKey = '123456';
$params = [
    'app_id' => 3, 
    'timestamp' => 1555069945,
    'signature_method'=>'HMAC-SHA1',
    'signature_version'=>'1.0',
    'signature_nonce'=>'rakdienakdig',
    'key1'=>'val1',
    'key2'=>'val2'
];

//排序参数
//按照键名对关联数组进行升序排序
ksort($params);
//编码
$stringToSign = urlencode(http_build_query($params, null, '&', PHP_QUERY_RFC3986));
$stringToSign = str_replace(['+', '*'], ['%20', '%2A'], $stringToSign);
$stringToSign = preg_replace('/%7E/', '~', $stringToSign);

//签名
$params['signature'] = base64_encode(hash_hmac('sha1', $stringToSign, $appKey.'&', true));

// 你的HTTP 实例,
$res = $http->post('your api url/path',$params);

//其中参数中的时间戳和世界标准时间相差不能超过1分钟。

//签名计算例子 在tests 目录

统计信息

  • 总下载量: 414
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-02-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固