中间件影响数据库中插入的绑定

瓦伦丁·布雷根(Valentin Bregeon)

我的laravel应用出现问题。

我想添加中间件来对路线进行等级控制。

当我将自定义的Middelware添加到我的路由组中时,SQL语句的绑定是双重的。

当我卸下自定义的中间件时,它就可以正常工作。

我真的不明白为什么。

有我的AuthRank.php:

class AuthRank {

public function handle($request, Closure $next, $rank)
{
    $response = $next($request);

    $user = Auth::user();

    if(!$user || $user->rank < $rank)
    {
          return redirect('/');
    }

    return $next($request);
}}

有我的Kernel.php:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Adldap\Laravel\Middleware\WindowsAuthenticate::class, // Inserted here.
    ],
    'api' => [
        'throttle:60,1',
    ],
];

/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'auth.rank' => \App\Http\Middleware\AuthRank::class, 
];

并且有我的Routes.php的摘录:

 Route::group(['prefix' => 'GestionUtilisateurs','middleware' =>'auth.rank:99'], function () 
{
    Route::post('/copy', ['uses' => 'userController@copyUser']);
});

自定义中间件的问题结果:

语句:插入MY_TABLE(DATE,USER_ID,ROLE_ID)值(:p0,:p1,:p2)绑定:[2016/08 / 09,2016 / 08 / 09,1,1,99,99]

没有我的自定义中间件,它会返回我:

语句:插入MY_TABLE(DATE,USER_ID,ROLE_ID)值(:p0,:p1,:p2)绑定:[2016/08 / 09,1,99]

这很好

我知道默认情况下它是“网络”中间件

app / providers / RouteServiceProvider.php

但是,当我删除它时,我的身份验证不起作用。

为什么它不能与我的自定义中间件一起使用?

谢谢 !

托马斯·巴特勒(Tomas Buteler)

我看不到任何可能影响您查询的代码。我看到的是您的代码似乎有错误:

class AuthRank {

    public function handle($request, Closure $next, $rank)
    {
        // Isn't this repeated unnecessarily?
        // $response = $next($request);

        $user = Auth::user();

        if(!$user || $user->rank < $rank) {
            return redirect('/');
        }

        return $next($request);
    }
}

尝试删除多余的代码。如果它不起作用,请提供更多有关如何创建受影响的查询的详细信息,我们可能会提供更多帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js如何从中间件内部的redis数据库中获取数据

来自分类Dev

使用JPA或中间件延迟写入数据库

来自分类Dev

是否可以在中间件中过滤掉一些数据库行?

来自分类Dev

从中间件访问数据库时,操作已在进行中错误

来自分类Dev

Django是否有类似“数据库中间件”的东西?

来自分类Dev

带有 exress 处理中间件外的数据库连接错误的 Node.js

来自分类Dev

通过中间件管道播种数据库引发异常 asp.net core

来自分类Dev

将数据绑定到中间件中的请求对象[Slim Framework 3]

来自分类Dev

如何在asp.net core 2.2中制作一个可以调用数据库检查用户声明授权用户的中间件

来自分类Dev

无法在本地主机上的Koa上使用koa-pg中间件查询PG数据库

来自分类Dev

烧瓶中的中间件

来自分类Dev

在环形中间件中访问会话数据

来自分类Dev

机架中间件中的机架中间件?

来自分类Dev

在 NodeJS/ExpressJS 的中间件中调用中间件

来自分类Dev

从快速中间件访问数据

来自分类Dev

在中间件之间传递数据

来自分类Dev

在中间件之间传递数据

来自分类Dev

我是否需要一个数据库来确保与面向消息的中间件的即时一致性?

来自分类Dev

正确的Core 3.0 API中间件将Azure AD B2C用户连接到我的数据库帐户?

来自分类Dev

如何在数据库中插入绑定列和取消绑定列datagridview值

来自分类Dev

如何在Cro中插入一些路由检查中间件?

来自分类Dev

在中间件中获取路由定义

来自分类Dev

OWIN中间件中的URL重写

来自分类Dev

Express 4中的中间件顺序

来自分类Dev

MVC 6中的Cookie中间件

来自分类Dev

中间件中的Laravel依赖注入

来自分类Dev

在中间件Laravel中获取URL

来自分类Dev

在流明中启用中间件(Laravel)

来自分类Dev

机架中间件中的跟踪错误

Related 相关文章

  1. 1

    node.js如何从中间件内部的redis数据库中获取数据

  2. 2

    使用JPA或中间件延迟写入数据库

  3. 3

    是否可以在中间件中过滤掉一些数据库行?

  4. 4

    从中间件访问数据库时,操作已在进行中错误

  5. 5

    Django是否有类似“数据库中间件”的东西?

  6. 6

    带有 exress 处理中间件外的数据库连接错误的 Node.js

  7. 7

    通过中间件管道播种数据库引发异常 asp.net core

  8. 8

    将数据绑定到中间件中的请求对象[Slim Framework 3]

  9. 9

    如何在asp.net core 2.2中制作一个可以调用数据库检查用户声明授权用户的中间件

  10. 10

    无法在本地主机上的Koa上使用koa-pg中间件查询PG数据库

  11. 11

    烧瓶中的中间件

  12. 12

    在环形中间件中访问会话数据

  13. 13

    机架中间件中的机架中间件?

  14. 14

    在 NodeJS/ExpressJS 的中间件中调用中间件

  15. 15

    从快速中间件访问数据

  16. 16

    在中间件之间传递数据

  17. 17

    在中间件之间传递数据

  18. 18

    我是否需要一个数据库来确保与面向消息的中间件的即时一致性?

  19. 19

    正确的Core 3.0 API中间件将Azure AD B2C用户连接到我的数据库帐户?

  20. 20

    如何在数据库中插入绑定列和取消绑定列datagridview值

  21. 21

    如何在Cro中插入一些路由检查中间件?

  22. 22

    在中间件中获取路由定义

  23. 23

    OWIN中间件中的URL重写

  24. 24

    Express 4中的中间件顺序

  25. 25

    MVC 6中的Cookie中间件

  26. 26

    中间件中的Laravel依赖注入

  27. 27

    在中间件Laravel中获取URL

  28. 28

    在流明中启用中间件(Laravel)

  29. 29

    机架中间件中的跟踪错误

热门标签

归档