2017-03-04 119 views
2

我已經使用Laravel構建了一個RESTful API,並且它的工作效果很好。使用帶Laravel API的應用令牌以提高安全性

當用戶想要創建或更新他們的記錄時有身份驗證。

但是,我想用應用程序令牌添加一個額外的安全級別。

我已經將此令牌放在.env文件中,並且想要檢查請求是否有app_token="uniquestring"以便我的API執行任何操作。

基本上我不在乎用戶是否有正確的api_token,如果請求沒有application_token那麼我希望它返回false。

我有幾個控制器和我敢肯定,我可以硬編碼這個,但有這樣做的途徑的好方法創建一個組,並設置一個特定的規則說,如果app_token != {my app token}然後返回Request denied或類似的規定行呢?

任何提示,非常感謝。提前致謝!

回答

1

是的,你有正確的做法。 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(){ 
    ... 
});