我建立了一個過濾器,它檢查一些鍵和ID發送,然後給出去或不去。問題是Laravel中的過濾器應該返回一個字符串,而我只是想返回一個布爾值並讓它觸發預期的路線。過濾器後Laravel觸發路由
篩選:
Route::filter('api_checkauth', function($route)
{
//user"ok"
$user_id = (int) $route->getParameter('user_id');
$sig = $route->getParameter('sig');
$user = User::find($user_id);
if($user) {
//user email
$email = $user->email;
//user api key
$api_key = $user->api_key;
//recreate signature
$_sig = hash_hmac("sha256", $email . $user_id, $api_key);
if($_sig === $sig) {
return Response::json(array("message"=>"Request Ok"),200);
} else {
return Response::json(array("message"=>"Request Bad"),400);
}
} else {
return Response::json(array("message"=>"Request not authorized"),401);
}
});
路線:
// Route group for API versioning
Route::group(array('prefix' => 'api/v1', 'before' => 'api_checkauth'), function()
{
Route::get('/pim/{user_id}/{sig}', '[email protected]');
});
因此問題是,我怎麼能依舊會觸發我的組中定義的路線?因爲現在發生的事情是隻打印一條消息,而不是應該觸發的控制器方法。
由於
謝謝!你的答案有點模糊,但我理解它。 –