You've already forked pilot-sdk
add iframe action
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Bluesquare\Pilot\Entity;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
abstract class Action extends Entity
|
||||
{
|
||||
public function action(
|
||||
@@ -30,6 +32,23 @@ abstract class Action extends Entity
|
||||
];
|
||||
}
|
||||
|
||||
public function iframe($url, $expires = 240)
|
||||
{
|
||||
$key = 'pilot_action_' . Str::random(10);
|
||||
$token = Str::random(40);
|
||||
|
||||
cache()->add($key, $token, now()->addMinutes($expires));
|
||||
|
||||
$url = $url . (str_contains($url, '?') ? '&' : '?') . "pilot_token=$key|$token";
|
||||
|
||||
return [
|
||||
'json' => [
|
||||
'type' => 'iframe',
|
||||
'url' => $url,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function error($message)
|
||||
{
|
||||
return [
|
||||
|
||||
28
src/Laravel/Middlewares/CheckPilotToken.php
Normal file
28
src/Laravel/Middlewares/CheckPilotToken.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Bluesquare\Pilot\Laravel\Middlewares;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class CheckPilotToken
|
||||
{
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (request('pilot_token')) {
|
||||
list($key, $token) = explode('|', request('pilot_token'));
|
||||
if (cache()->get($key) == $token) {
|
||||
cache()->set($key, $token, now()->addHour());
|
||||
session()->put('pilot_token', true);
|
||||
}
|
||||
}
|
||||
|
||||
if (! session('pilot_token')) {
|
||||
abort(403, "Pilot session expired.");
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace Bluesquare\Pilot\Laravel;
|
||||
|
||||
use Bluesquare\Pilot\Laravel\Middlewares\CheckPilotToken;
|
||||
use Bluesquare\Pilot\Pilot;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
@@ -36,6 +37,8 @@ class PilotServiceProvider extends ServiceProvider
|
||||
return $this->handleRequest($request);
|
||||
});
|
||||
|
||||
Route::aliasMiddleware('pilot', CheckPilotToken::class);
|
||||
|
||||
$this->commands([
|
||||
\Bluesquare\Pilot\Laravel\Commands\MakeAction::class,
|
||||
\Bluesquare\Pilot\Laravel\Commands\MakeMetric::class,
|
||||
|
||||
Reference in New Issue
Block a user