Laravel 5 API 服务端支持签名授权认证

Api Authorized Signature Middleware for Laravel 5

关于

The larsign package authorized signature server.

Features

Handles larsign requests

Installation

Require the havenshen/larsign package in your composer.json and update your dependencies:

$ composer require havenshen/larsign

Add the HavenShen\Larsign\LarsignServiceProvider to your config/app.php providers array:

HavenShen\Larsign\LarsignServiceProvider::class,

Add the HavenShen\Larsign\LarsignFacade to your config/app.php aliases array:

'Larsign' => HavenShen\Larsign\LarsignFacade::class,

Global usage

To allow Larsign for all your routes, add the HandleLarsign middleware in the $middleware property of app/Http/Kernel.php class:

protected $middleware = [

// ...

\HavenShen\Larsign\HandleLarsign::class,

];

Group middleware

If you want to allow Larsign on a specific middleware group or route, add the HandleLarsign middleware to your group:

protected $middlewareGroups = [

'web' => [

// ...

],

'api' => [

// ...

\HavenShen\Larsign\HandleLarsign::class,

],

];

Application route middleware

If you want to allow Larsign on a specific application middleware or route, add the HandleLarsign middleware to your application route:

protected $routeMiddleware = [

// ...

'auth.larsign' => \HavenShen\Larsign\HandleLarsign::class,

];

Configuration

The defaults are set in config/larsign.php. Copy this file to your own config directory to modify the values. You can publish the config using this command:

$ php artisan vendor:publish --provider="HavenShen\Larsign\LarsignServiceProvider"

return [

/*

|--------------------------------------------------------------------------

| Larsign

|--------------------------------------------------------------------------

|

*/

'headerName' => env('LARSIGN_HEADER_NAME', 'Larsign'),

'accessKey' => env('LARSIGN_ACCESS_KEY', ''),

'secretKey' => env('LARSIGN_SECRET_KEY', ''),

];

Add api route in routes/api.php Copy this.

Route::middleware(['auth.larsign'])->group(function () {

Route::get('/larsign', function () {

return [

'message' => 'done.'

]);

});

or

Route::get('/larsign', function () {

return [

'message' => 'done.'

];

})->middleware('auth.larsign');

Client

Generate Larsign signatures

Assume the following management credentials:

AccessKey = "test"

SecretKey = "123456"

Call interface address:

url = "https://larsign.dev/api/v1/test?page=1"

The original string to be signed:

note: the time-stamping followed by a newline [currenttime + voucher valid seconds]

signingStr = "/api/v1/test?page=1\n1510986405"

Base64 url safe encode:

signingStrBase64UrlSafeEncode = "L2FwaS92MS90ZXN0P3BhZ2U9MQoxNTEwOTg2NDY1"

hmac_sha1 carries SecretKey encryption then base64 url safe encode:

sign = "MLKnFIdI-0TOQ4mHn5TyCcmWACU="

The final administrative credentials are:

note: stitching headerName Space AccessKey:sign:signingStrBase64UrlSafeEncode

larsignToken = "Larsign test:MLKnFIdI-0TOQ4mHn5TyCcmWACU=:L2FwaS92MS90ZXN0P3BhZ2U9MQoxNTEwOTg2NDY1"

Add http header:

note: header key in config/larsign.php -> headerName

Larsign:Larsign test:MLKnFIdI-0TOQ4mHn5TyCcmWACU=:L2FwaS92MS90ZXN0P3BhZ2U9MQoxNTEwOTg2NDY1

Client signature authorization failed

Http Response: 403

Testing

$ phpunit

License

The MIT License (MIT). Please see License File for more information.

php邮箱验证laravel接口,Laravel 5 API 服务端支持签名授权认证相关推荐

  1. 微信开发接口调用(前端+.net服务端)

    微信接口开发,包含服务端(采用.net),前端js//服务端 namespace EatWorld {public partial class Default : System.Web.UI.Page ...

  2. C#实现微信企业号API服务端调用封装

    C#实现微信企业号API服务端调用封装 背景 代码封装 时间戳方法 基础方法:验证服务器接口.服务端解密.服务端加密.获取AccessToken.生成企业获取Code URL.获取授权用户信息.获取调 ...

  3. 微服务架构如何设计API代理网关和OAuth2授权认证框架

    1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...

  4. ios内购php验证码,PHP (Laravel) 实现 iOS 内购服务端验证

    /** * @Author woann * @param Request $request * @return \Illuminate\Http\JsonResponse * @des ios内购支付 ...

  5. 不合法的偏移量 钉钉接口_钉钉服务端api接口使用

    /* *发送工作通知消息 */ router.post('/api/dingtalkserve/asyncsend_v2', async ({ request, response, session } ...

  6. .NET 6 实现滑动验证码(九)、搭建验证码API服务端

    上一篇介绍了实现验证码生成的方法跟验证方法.本篇文章介绍如何在项目中使用. 目录 项目配置 项目配置 在实际应用中,我们可以添加打包好的.nupkg文件,也可以使用添加现有项目的方式,把源码添加到现有 ...

  7. laravel 项目实现邮箱验证功能

    邮箱验证功能在很多网站都有用到,我的个人网站上也用到,邮箱验证需要用到邮件发送服务,Laravel 提供了非常简单的邮件发送 API,Laravel 项目实现邮件发送功能很简单,下面我开始介绍一下我的 ...

  8. ios请求php接口失败,laravel,php_iOS调用Laravel接口返回错误信息,laravel,php,ios - phpStudy...

    iOS调用Laravel接口返回错误信息 iOS端代码如下: AFHTTPRequestOperationManager *manage = [[AFHTTPRequestOperationManag ...

  9. 魔方APP项目-05-注册功能实现,手机号唯一验证接口、客户端进行手机号验证、保存用户注册信息接口、客户端用户进行注册、使用云通讯发送短信,服务端实现发送短信验证码的api接口、客户端实现点击发送短信

    用户模块 注册功能实现 1.手机号码唯一验证接口 在开发中,针对客户端提交的数据进行验证或提供模型数据转换格式成字典给客户端.可以使用Marshmallow模块来进行. 为了方便导包,所以我们设置当前 ...

最新文章

  1. 微软“叛变”谷歌 Chromium!
  2. javascript:正则表达式、一个表单验证的例子
  3. Spring的静态注入
  4. 移动端HTML5性能优化
  5. supervisor使用指南
  6. uniapp h5页面 在移动端 使用clipboardone.js插件实现 写入剪切板 -- 安卓和ios安美适配(仅测试部分机型)
  7. gis发布及应用服务器,超图云GIS应用服务器平台
  8. Navicat连接oracle03135,ORA-03135: connection lost contact的解决方法
  9. 黑客攻防与电脑安全-从新手到高手
  10. 任意直流电压的多通道数据采集与独立测量,只需要一个模块
  11. linux日志按日期生成器,Cron表达式生成器
  12. 在阿里云服务器网站添加子域名无法访问的处理
  13. 2.3 OverFeat
  14. 小程序-仿微信通讯录-字母导航
  15. linux系统查看ssh是否开启,linux查看与开启ssh
  16. 历年评书出版一览表(1955~1994)
  17. 网口灯电路——反相器
  18. 半导体基本知识 PN结的形成及特性
  19. php html5手机端多张图片上传,PHP+jQuery+html5实现图片选取裁剪上传(兼容手机上传)...
  20. 计算机专业助我成长400字作文,读书,助我成长400字作文

热门文章

  1. 建行社会招聘笔试之一二
  2. 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作复审考试
  3. 百度网盘如何下载下载ed2k链接
  4. [原创]bind DNS IP列表的精确获取
  5. C#:实现BurrowsWheelerTransform(BWT)压缩算法(附完整源码)
  6. 千月(BlueSoleil)_7.0.359.0
  7. Proteus 8.9 模拟仿真Arduino控制点亮LED
  8. c语言取模原理,字符取模显示原理
  9. Dubbo——手写简单版Dubbo框架
  10. 教你怎么将手机转变成音箱