Merge pull request #2202 from sevannerse/signed-route-validation
makes possible right validation for temporary signed routes
This commit is contained in:
commit
420089d90a
@ -38,7 +38,7 @@ class ValidateSignature
|
|||||||
public function hasValidSignature(Request $request, $absolute = true)
|
public function hasValidSignature(Request $request, $absolute = true)
|
||||||
{
|
{
|
||||||
return $this->hasCorrectSignature($request, $absolute)
|
return $this->hasCorrectSignature($request, $absolute)
|
||||||
&& $this->signatureHasNotExpired($request);
|
&& $this->signatureHasNotExpired($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,10 +50,12 @@ class ValidateSignature
|
|||||||
*/
|
*/
|
||||||
public function hasCorrectSignature(Request $request, $absolute = true)
|
public function hasCorrectSignature(Request $request, $absolute = true)
|
||||||
{
|
{
|
||||||
$url = $absolute ? $request->url() : '/'.$request->path();
|
$url = $absolute ? $request->url() : '/' . $request->path();
|
||||||
|
|
||||||
$original = rtrim($url . '?' . Arr::query(
|
$original = rtrim($url . '?' . Arr::query(
|
||||||
Arr::only($request->query(), ['company_id'])
|
Arr::only($request->query(), ['company_id'])
|
||||||
|
) . Arr::query(
|
||||||
|
Arr::only($request->query(), ['expires'])
|
||||||
), '?');
|
), '?');
|
||||||
|
|
||||||
$signature = hash_hmac('sha256', $original, call_user_func(function () {
|
$signature = hash_hmac('sha256', $original, call_user_func(function () {
|
||||||
@ -73,6 +75,6 @@ class ValidateSignature
|
|||||||
{
|
{
|
||||||
$expires = $request->query('expires');
|
$expires = $request->query('expires');
|
||||||
|
|
||||||
return ! ($expires && Carbon::now()->getTimestamp() > $expires);
|
return !($expires && Carbon::now()->getTimestamp() > $expires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user