在Laravel中间件中向请求数组添加值是一种很好的做法?

我有一个身份验证中间件来检查传递API密钥的有效性。我从数据库存储中将用户标识提取到请求数组,以便请求页面将获得用户标识。在Laravel中间件中向请求数组添加值是一种很好的做法?

public function handle($request, Closure $next) { 

$key = $request->get('key');

$user = User::where('token', '=' ,$key)->first();

if($user != null){

$request->request->add(['middlewareUserID' => $user->id]);

return $next($request);

}

else {

return response(401);

}

}

这是一个很好的做法吗?

回答:

我会说在这种情况下这不是必需的。

我会用类似的代码如下:

use Illuminate\Contracts\Auth\Guard; 

class YourMiddleware

{

protected $guard;

public function __construct(Guard $guard)

{

$this->guard = $guard;

}

public function handle($request, Closure $next) {

$key = $request->get('key');

$user = User::where('token', '=' ,$key)->first();

if(!$user){

return response(401);

}

$this->guard->setUser($user);

return $next($request);

}

}

所以当有用户对给定令牌可以在在线$this->guard->setUser($user);验证用户当令牌无效返回return response(401);

我不没有看到任何需要设置此用户标识以请求显示。

以上是 在Laravel中间件中向请求数组添加值是一种很好的做法? 的全部内容, 来源链接: utcz.com/qa/263203.html

回到顶部