摘要:服務端支持簽名授權認證項目地址關于
Laravel 5 API 服務端支持簽名授權認證
Github 項目地址: https://github.com/HavenShen/larsign
Api Authorized Signature Middleware for Laravel 5 關于The larsign package authorized signature server.
FeaturesHandles larsign requests
InstallationRequire the havenshen/larsign package in your composer.json and update your dependencies:
$ composer require havenshen/larsign
Add the HavenShenLarsignLarsignServiceProvider to your config/app.php providers array:
HavenShenLarsignLarsignServiceProvider::class,
Add the HavenShenLarsignLarsignFacade to your config/app.php aliases array:
"Larsign" => HavenShenLarsignLarsignFacade::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 = [ // ... HavenShenLarsignHandleLarsign::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" => [ // ... HavenShenLarsignHandleLarsign::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" => HavenShenLarsignHandleLarsign::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="HavenShenLarsignLarsignServiceProvider"
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 1510986405"
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=:L2FwaS92MS90ZXN0P3BhZ2U9MQoxNTEwOTg2NDY1Client signature authorization failed
Http Response: 403Testing
$ phpunitLicense
The MIT License (MIT). Please see License File for more information.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26195.html
摘要:而只需要服務端生成,客戶端保存,每次請求在頭部中使用攜帶,服務端認證解析就可。如果緩存不清理,驗證碼就會一直有效,不安全。 一、授權 參考文獻:https://blog.risingstack.com/... 1. Basic authentication (最簡單,適用于沒有第三方的請求接口中) 客戶端發送authorization,內容為 Basic Base64編碼(usern...
摘要:而只需要服務端生成,客戶端保存,每次請求在頭部中使用攜帶,服務端認證解析就可。如果緩存不清理,驗證碼就會一直有效,不安全。 一、授權 參考文獻:https://blog.risingstack.com/... 1. Basic authentication (最簡單,適用于沒有第三方的請求接口中) 客戶端發送authorization,內容為 Basic Base64編碼(usern...
摘要:模糊授權,跟上面的認證碼授權類似,不同的是,我們的資源服務器,返回的直接就是準入令牌,而不是認證碼。 本文來自pilishen.com----原文鏈接; 歡迎來和pilishen一起學習php&Laravel;學習群:109256050 OAuth2是一個安全框架,控制著程序受保護部分的準入,主要是控制不同的客戶端如何來調取API,保證它們在請求相應資源的時候有相應的權限。 Larav...
摘要:為用戶提供授權以允許用戶操作非公開資源,有很多種方式。具體的代碼根據不同的授權方案而有所不同。使用授權原理利用來驗證用戶,有兩種機制實現。使用來實現用戶授權主要用于簽發如果有將異步的簽名。注意這里的與之前用于簽發的應該是同一個。 在很多應用中,我們都需要向服務端提供自己的身份憑證來獲得訪問一些非公開資源的授權。比如在一個博客平臺,我們要修改自己的博客,那么服務端要求我們能夠證明 我是...
摘要:本文是淺析微信支付系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。淺析微信支付前篇大綱微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。目前微信支付支持手機系統有蘋果安卓和。 本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。 上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。 淺析微信支...
閱讀 3205·2021-11-17 09:33
閱讀 3288·2021-11-15 11:37
閱讀 2950·2021-10-19 11:47
閱讀 3199·2019-08-29 15:32
閱讀 1001·2019-08-29 15:27
閱讀 1525·2019-08-29 13:15
閱讀 932·2019-08-29 12:47
閱讀 2023·2019-08-29 11:30