如何在 Laravel 中创建自定义基本身份验证或使用两个中间件
How to create custom basic auth or use two middleware in Laravel
我正在使用 laravel 5.2.45 并且我有以下路线
Route::group([
'namespace' => 'Api',
'prefix' => "api",
'middleware' => 'service'
], function() {
Route::get('student/{msisdn}/status', 'StudentController@status');
});
我的中间件是 service
所以这是我的 config/service.php
<?php
return [
'password' => //password here,
'ip' => //my server ip here,
'url' => [
'check_status' => 'http://%s/student/api/checkUser?password=%s&msisdn=%s',
]
];
根据我的要求,这段代码工作正常,但我现在想要的是在没有数据库的情况下应用基本身份验证。我只想要一个硬编码的用户名和密码(这是我的要求,否则我会使用 db)。
由于我的中间件是 service
,我将如何在其上应用另一个中间件 basic.auth
,是否可以使用两个中间件?或者结合服务和 basic.auth 中间件并创建新的中间件?关于我该怎么做的任何建议、教程或示例代码?
您可以将任意数量的中间件添加到一个路由或一组路由。
Route::group([
'namespace' => 'Api',
'prefix' => "api",
'middleware' => ['service', 'auth.basic']
], function() {
Route::get('student/{msisdn}/status', 'StudentController@status');
});
至于没有数据库的身份验证,您可以创建自定义中间件并在其中硬编码登录信息。将此中间件应用于所有路由以强制执行身份验证。
这应该可以帮助您入门。虽然您需要将过滤器转换为中间件,但此处的代码非常简单。
我正在使用 laravel 5.2.45 并且我有以下路线
Route::group([
'namespace' => 'Api',
'prefix' => "api",
'middleware' => 'service'
], function() {
Route::get('student/{msisdn}/status', 'StudentController@status');
});
我的中间件是 service
所以这是我的 config/service.php
<?php
return [
'password' => //password here,
'ip' => //my server ip here,
'url' => [
'check_status' => 'http://%s/student/api/checkUser?password=%s&msisdn=%s',
]
];
根据我的要求,这段代码工作正常,但我现在想要的是在没有数据库的情况下应用基本身份验证。我只想要一个硬编码的用户名和密码(这是我的要求,否则我会使用 db)。
由于我的中间件是 service
,我将如何在其上应用另一个中间件 basic.auth
,是否可以使用两个中间件?或者结合服务和 basic.auth 中间件并创建新的中间件?关于我该怎么做的任何建议、教程或示例代码?
您可以将任意数量的中间件添加到一个路由或一组路由。
Route::group([
'namespace' => 'Api',
'prefix' => "api",
'middleware' => ['service', 'auth.basic']
], function() {
Route::get('student/{msisdn}/status', 'StudentController@status');
});
至于没有数据库的身份验证,您可以创建自定义中间件并在其中硬编码登录信息。将此中间件应用于所有路由以强制执行身份验证。
这应该可以帮助您入门。虽然您需要将过滤器转换为中间件,但此处的代码非常简单。