2015-01-05 68 views
0

在Laravel我得到一個 「CSRF」 問題 「照亮\會議\ TokenMismatchException」laravel 「CSRF」 問題 「照亮會議 TokenMismatchException」

Route::group(array('before'=>'guest'),function() 
{ 
    Route::get('/user/create',array('uses'=>'[email protected]')); 
    Route::get('/user/login',array('uses'=>'[email protected]','as'=>'postCreate')); 

    Route::group(array('before'=>'csrf'),function() 
    { 
     Route::get('/user/create','[email protected]'); 
     Route::get('/user/login','[email protected]'); 
    }); 
}); 

即控制器

class UserController extends BaseController{ 
public function getCreate() 
{ 
    //return View::make('hello'); 
    return View::make('user.register'); 
} 

即視圖

<div class="container"> 
<h1>Register</h1> 
<form role="form" method="post" action="{{ URL::route('postCreate')}}"> 
    <div class="form-gourp"> 
     <label for="username">Username: </label> 
     <input id="username" name="username" type="text" class="form-control" /> 
    </div> 
    <div class="form-gourp"> 
     <label for="password">Password: </label> 
     <input id="password" name="password" type="text" class="form-control" /> 
    </div> 
    <div class="form-gourp"> 
     <label for="username">confirm Password: </label> 
     <input id="cpassword" name="cpassword" type="text" class="form-control" /> 
    </div> 
    {{form::token()}} 
    <div class="form-gourp"> 
     <input type="submit" value="register" class="btn btn-default"/> 
    </div> 
</form> 

當我添加{{form::token }},它顯示錯誤「照亮\會議\ TokenMismatchException」

+0

只是好奇:是'form-gourp'是正確的類名,還是應該是'form-group'? – yochannah

+0

它會生成正確的HTML嗎?如果您在瀏覽器中查看源代碼,您應該看到一個隱藏類型的字段,其中包含令牌 – lukasgeiter

+0

沒有任何形式的葫蘆是不正確的,但正確的是形式組,我已經替換它並感謝糾正我。 – hu7sy

回答

3

你錯了,你的路線。

Route::group(array('before'=>'csrf'),function() 
{ 
    Route::get('/user/create','[email protected]'); 
    Route::get('/user/login','[email protected]'); 
}); 

這些應該是post,像下面

Route::group(array('before'=>'csrf'),function() 
{ 
    Route::post('/user/create','[email protected]'); 
    Route::post('/user/login','[email protected]'); 
}); 

瞭解更多關於CSRF上wikilaravel doc

+0

謝謝它適合我... – hu7sy

+0

如果這項工作請留下印記:) @ user2377300 –

1

使用{{ Form::open() }}{{ Form::close() }}而非<form>標籤

+2

'Form :: token()'應該仍然可以工作。 'Form :: open()'不需要使CSRF令牌工作。 – lukasgeiter

+0

感謝您糾正我... – hu7sy

相關問題