我从 laravel 创建身份验证类,现在我想知道如何将/register 页面仅供登录系统的用户使用?
我的路线是:
Route::group(['middleware' => ['web']], function () {
//
Route::get('/', 'AuthAuthController@getLogin');
});
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
//Route::get('/register', 'AuthAuthController@getRegister');
});
对于身份验证 url,只需添加一个auth
中间件,该中间件将在用户登录后工作。按照以下代码操作:
Route::group(['middleware' => ['web','auth']], function () {
Route::get('/register', 'YourController@getRegister');
});
您必须使用中间件来过滤用户。在身份验证的情况下,有一个内置的中间件称为"身份验证"您可以按组中的中间件进行过滤,如AnowarCst所示。或者在这样的单一路线中:
Route::get('/register', [
'middleware' => 'auth',
'yourController@yourFunction'
]);
阅读文档以更好地了解中间件。
不要害怕,它比它看起来更简单。 :)
我用这个解决了这个问题:
public function __construct()
{
$this->middleware('guest', ['except' => ['logout', 'register', 'showRegistrationForm']]);
$this->middleware('auth', ['only' => ['register', 'showRegistrationForm']]);
}
还有我的路线.php
Route::group(['middleware' => ['web']], function () {
Route::get('/', 'AuthAuthController@getLogin');
});
Route::group(['middleware' => 'web'], function () {
Route::Auth();
Route::get('/dashboard', 'HomeController@index');
});
Route::group(['middleware' => ['web', 'auth']], function () {
Route::get('/register', 'AuthAuthController@showRegistrationForm');
});
谢谢大家。