예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param \Illuminate\Http\Request $request
  * @param \Closure                 $next
  *
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($this->alexaRequest->isAlexaRequest()) {
         return $this->sendRequestThroughRouter($request);
     }
     return $next($request);
 }
예제 #2
0
 public function __construct(AlexaRequest $alexaRequest, DeviceProvider $deviceProvider, array $alexaConfig)
 {
     $this->alexaRequest = $alexaRequest;
     $this->deviceProvider = $deviceProvider;
     $this->setupSession();
     $this->alexaConfig = $alexaConfig;
     $this->isAlexaRequest = $this->alexaRequest->isAlexaRequest();
 }
예제 #3
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure                 $next
  *
  * @return mixed
  *
  * @throws InvalidSignatureChainException
  * @throws \Exception
  */
 public function handle($request, Closure $next)
 {
     if (!$this->alexaRequest->isAlexaRequest()) {
         return $next($request);
     }
     $this->verifyApplicationId();
     $this->checkTimestampTolerance();
     $certificateResult = $this->verifyCertificate($request);
     if ($certificateResult === 1) {
         return $next($request);
     } elseif ($certificateResult = 0) {
         throw new InvalidSignatureChainException("The request did not validate against the certificate chain.");
     } else {
         throw new \Exception("Something went wrong when validating the request and certificate.");
     }
 }