首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我可以动态添加中间件吗?

我可以动态添加中间件吗?
EN

Stack Overflow用户
提问于 2022-08-22 17:41:05
回答 2查看 125关注 0票数 0

我的网站上有两种类型的授权。我想要创建一个通用中间件,它将处理对相应的中间件的请求。例如:

代码语言:javascript
代码运行次数:0
运行
复制
if ($request->headers->has('token')) {
        // Execute token middleware
}

if ($request->headers->has('authorization')) {
        // Execute some logics
        // Call `auth:sanctum` middleware
}

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2022-08-22 20:17:00

您可以为Laravel的auth中间件提供多个保护。中间件将按顺序遍历所提供的保护程序,并使用它可以使用的第一个安全性:

代码语言:javascript
代码运行次数:0
运行
复制
Route::middleware('auth:token,sanctum')->group(function () {
    // your other routes
});

您可以使用在Laravel (config/auth.php)中设置的任何或所有警卫来完成此操作。

票数 3
EN

Stack Overflow用户

发布于 2022-08-22 20:19:32

您还可以在控制器中应用中间件,并将其作用于构造函数中的特定方法:

代码语言:javascript
代码运行次数:0
运行
复制
public function __construct()
{
    // Middleware only applied to these methods
    $this->middleware('your-middleware', [
        'only' => [
            'update',
            'create'
        ]
    ]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73449061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档