Все решения, которые я приведу ниже, предполагают, что вы пытаетесь получить доступ к своему маршруту с помощью параметра code=X
URI / GET.
Простой маршрут
Вы можете просто проверить правильность указанного кода.в методе каждого маршрута и перенаправить куда-нибудь, если это не так.
web.php
Route::get('yourRouteUri', 'YourController@yourAction');
YourController.php
use Request;
class YourController extends Controller {
public function yourAction(Request $request) {
if ($request->code != '1234') {
return route('route-to-redirect-to')->redirect();
}
return view('your.view');
}
}
Маршрут с промежуточным программным обеспечением
Или вы можете использовать промежуточное программное обеспечение, чтобы избежать повторения блока условий на каждом маршруте, если многие из них связаны с проверкой.
app/Http/Middleware/CheckAccessCode.php
namespace App\Http\Middleware;
use Request;
use Closure;
class CheckAccessCode
{
public function handle(Request $request, Closure $next)
{
if ($request->code != '1234') {
return route('route-to-redirect-to')->redirect();
}
return $next($request);
}
}
app/Http/Kernel.php
// Within App\Http\Kernel Class...
protected $routeMiddleware = [
// Other middlewares...
'withAccessCode' => \App\Http\Middleware\CheckAccessCode::class,
];
web.php
Route::get('yourRouteUri', 'YourController@yourAction')->middleware('withAccessCode');