我使用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
,是否可以使用两个中间件?或者结合使用service和basic.auth中间件并创建新的中间件?关于我该怎么做的任何建议,教程或示例代码?
答案 0 :(得分:2)
您可以向路线或路线组添加任意数量的中间件。
Route::group([
'namespace' => 'Api',
'prefix' => "api",
'middleware' => ['service', 'auth.basic']
], function() {
Route::get('student/{msisdn}/status', 'StudentController@status');
});
对于没有数据库的身份验证,您可以创建自定义中间件并在那里对登录信息进行硬编码。将此中间件应用于所有路由以强制执行身份验证。
这应该让你开始。虽然您需要将过滤器转换为中间件,但这里的代码非常简单。