我有一个受保护的路由组:
Route::group(['prefix' => 'member', 'middleware' => 'auth'], function () {
Route::get('/')->name('member.home')->uses('MemberController@index');
Route::get('show')->name('member.show')->uses('MemberController@show');
// ...various additional protected member routes...
});
但是,我有两条不应该受到保护的路由:
Route::get('member/pay')->name('member.pay')->uses('MemberController@pay');
Route::get('member/confirm/{payment}')->name('member.confirm')->uses('MemberController@confirm');
只要将'middleware' => 'auth'
应用于该单独的路由组,它就会覆盖所有带member
前缀的路由,即使我没有将它们放在该组中。
我已经尝试将未受保护的路由移动到受保护的路由组的上下,但仍然获得401 unauthorized
,除非我完全删除中间件。
这不会影响其他任何以member
为前缀的routes...only。
如何从auth中排除这两条路由?
发布于 2017-06-14 04:47:15
怎么样
Route::group(['prefix' => 'member'], function () {
Route::get('/')->name('member.home')->uses('MemberController@index')->middleware('auth');
Route::get('show')->name('member.show')->uses('MemberController@show')->middleware('auth');
//
Route::get('member/pay')->name('member.pay')->uses('MemberController@pay');
Route::get('member/confirm/{payment}')->name('member.confirm')->uses('MemberController@confirm');
});
发布于 2017-06-14 04:48:17
一种方法是从路由组中删除中间件分配,转而在MemberController构造函数中分配中间件。这样,您就可以排除哪些方法不应该应用它,如下所示:
class MemberController extends Controller
{
/**
* Instantiate a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth')->except(['pay', 'confirm']);
}
}
发布于 2017-06-14 04:50:19
使用像这样的嵌套组。
Route::group([ 'prefix' => 'member' ], function() {
// Protected routes
Route::group([ 'middleware' => 'auth' ], function() {
Route::get('/', 'MemberController@index')->name('member.home');
Route::get('show', 'MemberController@show')->name('member.show');
// ...various additional protected member routes...
});
// Non protected routes
Route::get('pay', 'MemberController@pay')->name('member.pay');
Route::get('confirm/{payment}', 'MemberController@confirm')->name('member.confirm');
// ...various additional non protected member routes...
});
https://stackoverflow.com/questions/44531137
复制相似问题