2 回答

TA貢獻1864條經(jīng)驗 獲得超6個贊
處理此問題的最佳方法是將這些路由分組到中間件中,并在中間件本身中檢查不記名令牌。這將使您的方法更加整潔,并且您可以輕松地在此路由中間件組中添加需要不記名令牌檢查的新路由。

TA貢獻1847條經(jīng)驗 獲得超7個贊
雖然將令牌驗證問題分開是一個好主意,但在構(gòu)造函數(shù)中做這樣的事情并不是一個好習慣,更不用說將它隱藏在基類的構(gòu)造函數(shù)中了。
一般來說,構(gòu)造函數(shù)應(yīng)該用于構(gòu)造對象,而不是“做事”。
因為你想return早點,從控制器中提取這個問題有點復(fù)雜。但這就是中間件的用途。
查看有關(guān)創(chuàng)建自己的中間件的 Laravel 文檔(盡管您嘗試做的事情可能已經(jīng)內(nèi)置)
一個示例中間件類可能如下所示:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckToken
{
/**
* Handle an incoming request and check the token.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (...) { //your token check
return ...; // your early-returned json.
}
return $next($request); //otherwise continue
}
}
- 2 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報