|
25 | 25 | }); |
26 | 26 |
|
27 | 27 | test('authentication works when APP_URL is empty using same-domain fallback', function () { |
28 | | - config(['app.url' => '']); |
| 28 | + config([ |
| 29 | + 'app.url' => '', |
| 30 | + 'log-viewer.api_stateful_domains' => [], // Override to exclude localhost |
| 31 | + ]); |
29 | 32 |
|
30 | | - LogViewer::auth(fn ($request) => true); |
| 33 | + // Auth callback that requires session to be started (proving session middleware was applied) |
| 34 | + LogViewer::auth(function ($request) { |
| 35 | + if (! $request->hasSession() || ! $request->session()->isStarted()) { |
| 36 | + return false; |
| 37 | + } |
| 38 | + return true; |
| 39 | + }); |
31 | 40 |
|
32 | | - $response = getJson(route('log-viewer.folders'), [ |
33 | | - 'referer' => 'http://localhost/', |
| 41 | + $response = getJson('http://production.example.com/log-viewer/api/folders', [ |
| 42 | + 'referer' => 'http://production.example.com/', |
34 | 43 | ]); |
35 | 44 |
|
36 | 45 | $response->assertOk(); |
|
72 | 81 | }); |
73 | 82 |
|
74 | 83 | test('same-domain requests work without APP_URL configured', function () { |
75 | | - config(['app.url' => null]); |
| 84 | + config([ |
| 85 | + 'app.url' => null, |
| 86 | + 'log-viewer.api_stateful_domains' => [], // Override to exclude localhost |
| 87 | + ]); |
76 | 88 |
|
77 | | - LogViewer::auth(fn ($request) => true); |
| 89 | + // Auth callback that requires session to be started (proving session middleware was applied) |
| 90 | + LogViewer::auth(function ($request) { |
| 91 | + if (! $request->hasSession() || ! $request->session()->isStarted()) { |
| 92 | + return false; |
| 93 | + } |
| 94 | + return true; |
| 95 | + }); |
78 | 96 |
|
79 | 97 | // Simulate request from same domain |
80 | 98 | $response = getJson('http://production.example.com/log-viewer/api/folders', [ |
|
85 | 103 | }); |
86 | 104 |
|
87 | 105 | test('same-domain requests with custom port work without APP_URL', function () { |
88 | | - config(['app.url' => null]); |
| 106 | + config([ |
| 107 | + 'app.url' => null, |
| 108 | + 'log-viewer.api_stateful_domains' => [], // Override to exclude localhost |
| 109 | + ]); |
89 | 110 |
|
90 | | - LogViewer::auth(fn ($request) => true); |
| 111 | + // Auth callback that requires session to be started (proving session middleware was applied) |
| 112 | + LogViewer::auth(function ($request) { |
| 113 | + if (! $request->hasSession() || ! $request->session()->isStarted()) { |
| 114 | + return false; |
| 115 | + } |
| 116 | + return true; |
| 117 | + }); |
91 | 118 |
|
92 | 119 | // Simulate request from same domain with custom port |
93 | | - $response = getJson('http://localhost:8080/log-viewer/api/folders', [ |
94 | | - 'referer' => 'http://localhost:8080/log-viewer', |
| 120 | + $response = getJson('http://production.example.com:8080/log-viewer/api/folders', [ |
| 121 | + 'referer' => 'http://production.example.com:8080/log-viewer', |
95 | 122 | ]); |
96 | 123 |
|
97 | 124 | $response->assertOk(); |
|
0 commit comments