2017-05-09 82 views
0

我想修改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相當陌生。謝謝你的時間!

回答

0

您可以創建自定義路由,如/ register/{token}並在控制器中處理該令牌。如果你願意,甚至可以設置在中間件組中。

+0

謝謝。然而,我似乎仍然在做錯事,因爲它仍然不起作用(請參閱編輯後)。 – Matt

+0

我認爲你不需要在那裏使用中間件。就像'Route :: get('/ register/{token}','Auth \ RegisterController @ register');'並且在RegisterController中寫入函數'public function register($ token)'''之後就可以處理令牌如何你想要的。 – al0mie