@@ -50,9 +50,7 @@ public function handle(?string $task = null): void
50
50
51
51
$ this ->setQueue ();
52
52
53
- if (empty ($ this ->config ['app_engine ' ])) {
54
- OpenIdVerificator::verify (request ()->bearerToken (), $ this ->config );
55
- }
53
+ $ this ->guard ();
56
54
57
55
$ this ->handleTask ($ task );
58
56
}
@@ -75,12 +73,10 @@ private function captureTask($task): array
75
73
$ validator = validator ([
76
74
'json ' => $ task ,
77
75
'task ' => $ array ,
78
- 'name_header ' => request ()->header ('X-CloudTasks-TaskName ' ) ?? request ()->header ('X-AppEngine-TaskName ' ),
79
76
], [
80
77
'json ' => 'required|json ' ,
81
78
'task ' => 'required|array ' ,
82
79
'task.data ' => 'required|array ' ,
83
- 'name_header ' => 'required|string ' ,
84
80
]);
85
81
86
82
try {
@@ -114,6 +110,20 @@ private function setQueue(): void
114
110
$ this ->queue = new CloudTasksQueue ($ this ->config , $ this ->client );
115
111
}
116
112
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
+
117
127
private function handleTask (array $ task ): void
118
128
{
119
129
$ job = new CloudTasksJob ($ task , $ this ->queue );
0 commit comments