2017-05-09 18 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); 
    } 
} 

私も追加\ Appで$ routeMiddleware配列に'token' => \App\Http\Middleware\CheckToken::class \のHttp \ Kernel.phpしかし

、私は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のwrite関数' public function register($ token) 'の後に処理することができますどのようにトークンをしたいですか? – al0mie

関連する問題