@@ -50,9 +50,7 @@ public function handle(?string $task = null): void
5050
5151 $ this ->setQueue ();
5252
53- if (empty ($ this ->config ['app_engine ' ])) {
54- OpenIdVerificator::verify (request ()->bearerToken (), $ this ->config );
55- }
53+ $ this ->guard ();
5654
5755 $ this ->handleTask ($ task );
5856 }
@@ -75,12 +73,10 @@ private function captureTask($task): array
7573 $ validator = validator ([
7674 'json ' => $ task ,
7775 'task ' => $ array ,
78- 'name_header ' => request ()->header ('X-CloudTasks-TaskName ' ) ?? request ()->header ('X-AppEngine-TaskName ' ),
7976 ], [
8077 'json ' => 'required|json ' ,
8178 'task ' => 'required|array ' ,
8279 'task.data ' => 'required|array ' ,
83- 'name_header ' => 'required|string ' ,
8480 ]);
8581
8682 try {
@@ -114,6 +110,20 @@ private function setQueue(): void
114110 $ this ->queue = new CloudTasksQueue ($ this ->config , $ this ->client );
115111 }
116112
113+ private function guard (): void
114+ {
115+ $ appEngine = ! empty ($ this ->config ['app_engine ' ]);
116+
117+ if ($ appEngine ) {
118+ // https://cloud.google.com/tasks/docs/creating-appengine-handlers#reading_task_request_headers
119+ // "If your request handler finds any of the headers listed above, it can trust
120+ // that the request is a Cloud Tasks request."
121+ abort_if (empty (request ()->header ('X-AppEngine-TaskName ' )), 404 );
122+ } else {
123+ OpenIdVerificator::verify (request ()->bearerToken (), $ this ->config );
124+ }
125+ }
126+
117127 private function handleTask (array $ task ): void
118128 {
119129 $ job = new CloudTasksJob ($ task , $ this ->queue );
0 commit comments