繁体   English   中英

如何在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');
});

至于没有数据库的身份验证,您可以创建一个自定义的中间件并在其中对登录信息进行硬编码。 将此中间件应用于所有路由以实施身份验证。

这应该使您入门。 尽管您需要将过滤器转换为中间件,但是这里的代码非常简单。

https://stackoverflow.com/a/28322507/5892849

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM