我想修改Laravel Auth註冊系統,因爲我想要求提供令牌參數以便用戶能夠訪問註冊頁面(即http://website.dev/register/ {tokenhere })。下面是相關代碼:修改Laravel Auth註冊頁面
從我的路線\ web.php文件:
Route::get('/register/{token}', function() {
//
})->middleware('token');
從我\軟件\ HTTP \中間件\ CheckToken.php文件:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckToken
{
public function handle($request, Closure $next)
{
if($request->token != 'test') { #just hard coding something here for testing purposes
return redirect('home');
}
return $next($request);
}
}
我還添加了'token' => \App\Http\Middleware\CheckToken::class
到\ App \ Http \ Kernel.php中的$ routeMiddleware數組中
但是,我去http://website.dev/register,我能夠訪問該頁面,儘管沒有提供令牌參數。我還可以看到,如果我提供中間件正在查找的「測試」參數(http://website.dev/register/test),我會得到一個空白頁。
希望有人能指出我正確的方向。我對MVC和Laravel相當陌生。謝謝你的時間!
謝謝。然而,我似乎仍然在做錯事,因爲它仍然不起作用(請參閱編輯後)。 – Matt
我認爲你不需要在那裏使用中間件。就像'Route :: get('/ register/{token}','Auth \ RegisterController @ register');'並且在RegisterController中寫入函數'public function register($ token)'''之後就可以處理令牌如何你想要的。 – al0mie