使用带有 Laravel API 的 App Token 以获得额外的安全性

Using an App Token with Laravel API for extra security

我用 Laravel 构建了一个 RESTful API 并且运行良好。

当用户想要创建或更新他们的记录时需要进行身份验证。

但是,我想使用应用程序令牌增加一个额外的安全级别。

我已将此标记放入 .env 文件中,并想检查请求是否包含 app_token="uniquestring" 以便我的 API 执行任何操作。

基本上我不关心用户是否有正确的 api_token,如果请求没有 application_token 那么我希望它 return 为假。

我有几个控制器,我确定我可以对此进行硬编码,但是有没有一种好的方法可以通过创建一个组并设置一个特定的规则来在路由中做到这一点如果app_token != {my app token}然后return Request denied 或者类似的东西?

非常感谢任何提示。提前致谢!

是的,你的方法是对的。 Bur 宁愿制作一个中间件并将其应用于您的路由组。

public function handle($request, Closure $next)
{
    if ( $request->header('app_token') && $request->header('app_token') == 'uniquestring') {
        return $next($request);
    }
    return response('Unauthorized.', 401);
}

将它作为中间件添加到您的路由中,假设您的中间件在 kernel.php

中别名为 'apptoken'
Route::group(['middleware' => ['auth:api', 'apptoken']], function(){
    ... 
});