【问题标题】:Request input returns null in Middleware请求输入在中间件中返回 null
【发布时间】:2021-07-20 12:25:32
【问题描述】:

我正在通过中间件检查有效令牌来保护路由,就像这样;-

http://localhost:8097/init/my-secret-token


Route::get('/init/{token}', [MyController::class, 'init'])->middleware('validToken');


// Kernel.php
protected $routeMiddleware = [
    'validToken' => \App\Http\Middleware\EnsureTokenIsValid::class,
 ];


// App/Http/Middleware/EnsureTokenIsValid.php
class EnsureTokenIsValid
{

 public function handle(Request $request, Closure $next)
 {
    dd($request->input('token')); // returns null

    if($request->input('token') !== 'my-secret-token'){
        return redirect('home');
    }
    return $next($request);
 }
}

$request->input('token') 出于某种原因返回 null?我尝试了以下方法:-

http://localhost:8097/init/token/my-secret-token & http://localhost:8097/init?token=my-secret-token - 只收到 400

【问题讨论】:

标签: laravel middleware


【解决方案1】:

你试过了吗:

$request->route('token')

这应该直接从您的路线中获取参数。

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2017-03-12
    • 2016-03-31
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多