1

当我在 laravel 4 中运行工匠路线时

auth/login/{v1}/{v2}/{v3}/{v4}/{v5}

这是正常的还是有什么问题。我的路线工作只是想知道是否可能存在错误或其他问题。以下是我的身份验证路线。我正在使用宁静的路线进行身份验证。

Route::controller('auth','AuthController');

Route::get('AuthController/login', array('as' => 'login', 'uses' => 'AuthController@login'));
Route::get('auth/logout', array('as' => 'logout', 'uses' => 'auth@logout'));
Route::post('auth/login', array('uses' => 'auth@login'));
4

2 回答 2

0

我建议您进行 2 项改进:

1 - 使用 URI 保持标准

在这种情况下,您不需要 Route::controller。为了维护所有具有相同结构的路线,我会这样做:

Route::group( array('prefix'=>'auth,function(){   //make all auth routes starting by auth
    Route::get('getLogin', array('as' => 'getLogin', 'uses' => 'AuthController@getLogin'));
    Route::get('getLogin', array('as' => 'logout', 'uses' => 'AuthController@logout'));
    Route::post('postLogin', array('as' => 'postLogin', 'uses' => 'AuthController@postLogin'));
});

没有必要使用组,但如果您的应用程序增长可能会更好。没有组代码将是:

Route::get('auth/getLogin', array('as' => 'getLogin', 'uses' => 'AuthController@getLogin'));
Route::get('auth/getLogin', array('as' => 'logout', 'uses' => 'AuthController@logout'));
Route::post('auth/postLogin', array('as' => 'postLogin', 'uses' => 'AuthController@postLogin'));

2 - 保护您的发帖路线

对于每个 post 和 put 请求,我们必须防止这样的 CSRF 攻击:

Route::post('postLogin',array('before' => 'csrf','uses'=>AuthController@postLogin) );
于 2013-06-05T06:13:16.253 回答
0

这是意料之中的。Route::controller()当您向控制器检查器注册控制器时,会添加 URI 通配符。考虑以下示例:

Route::controller('user', 'UserController');

然后,您可能会有这样的方法UserController

public function getProfile($username)
{
    $user = User::where('username', $username)->first();

    return View::make('profile')->with('user', $user); 
}

然后,您可以通过访问该方法localhost/yourapp/user/profile/jason

简而言之,它允许您将额外的参数传递给方法。对我来说,这是一种非常古老的做法,因为它看起来更好localhost/yourapp/user/jason/profile,在这种情况下,您需要使用路由来映射到控制器方法。

于 2013-06-05T06:19:53.900 回答