Laravel 5.2需要一个实现默认身份验证驱动程序/“多重身份验证”的示例。目前需要大量的工作。

10 浏览
0 Comments

Laravel 5.2需要一个实现默认身份验证驱动程序/“多重身份验证”的示例。目前需要大量的工作。

身份验证驱动程序/“多重身份验证”\n在发布Laravel 5.2之前,宣称该版本可以直接支持多重身份验证。但是,没有任何示例代码展示如何在路由中使用不同的驱动程序进行身份验证。因此,我需要帮助设置默认的Laravel 5.2以实现多重身份验证。

0
0 Comments

Laravel 5.2需要一个实现默认身份验证驱动程序/“多身份验证”的示例,目前需要做很多工作。出现这个问题的原因是,初始的身份验证机制不够好,并且与多身份验证不兼容。解决方法是在routes/web.php文件中添加以下路由:

Route::controller('/auth', 'Auth\AuthController');
Route::controller('/password', 'Auth\PasswordController');

然后在resources/views/auth/login.blade.php文件中创建表单。完成这些步骤后,可以使用laravel.dev/auth/login和laravel.dev/auth/logout路由进行登录和注销操作。

在Illuminate\Foundation\Auth\AuthenticatesUsers特征中,我们可以看到该机制目前是无用的,例如logout方法没有在任何地方定义提供者admin:

Auth::logout(); // not working logout should be smth like Auth::guard($provider)->logout();

0
0 Comments

Laravel 5.2需要一个实现默认身份验证驱动程序/“多身份验证”的示例,目前需要大量工作。

使用rajpurohit-dinesh的示例,我们只需要完成第一步:

1:

在我们的app文件夹中创建一个App\Admin模型。下面是您的Authenticatable类应该如何编写的示例。


2:更新config/auth.php文件。

return [
    // This is the default guard used, not need to declare
    // another guard here
    'defaults' => [
        'guard' => 'user',
            'passwords' => 'user',
    ],
    // Here we must to declare the guards, if we created the App\Admin
    // class as first step, we don't need to create a custom guard
    'guards' => [
        'user' => [
            'driver' => 'session',
            'provider' => 'user',
        ],
        'admin' => [
            'driver' => 'session',
            'provider' => 'admin',
        ],
    ],
    // In this example we are using only 'eloquent' driver
    'providers' => [
        'user' => [
            'driver' => 'eloquent',
            'model' => 'App\User',
        ],
        'admin' => [
            'driver' => 'eloquent',
            'model' => 'App\Admin',
        ],
    ],
    'passwords' => [
        'user' => [
            'provider' => 'user',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'admin' => [
            'provider' => 'admin',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ]
    ]
];

3:要进行测试,我们可以使用我们的app\Http\Route.php文件:

Route::get('/login', function() {
    $auth = auth()->guard('admin');
    $credentials = [
        'email' =>  'admin.com',
        'password' =>  'password',
    ];
    if ($auth->attempt($credentials)) {
        return 'Success';
    } else {
        return 'Not Success';    
});

问题的出现原因是需要实现Laravel 5.2中的默认身份验证驱动程序/“多身份验证”。解决方法是按照上述步骤创建一个App\Admin模型,并在config/auth.php文件中更新设置,然后使用测试路由进行测试。

0
0 Comments

Laravel 5.2需要一个实现默认身份验证驱动程序/“Multi-Auth”的示例,目前需要大量工作。问题出现的原因是需要在Laravel中实现多个身份验证驱动程序,但是配置文件中需要重复的配置项较多。解决方法是创建两个新的模型:App\Admin和App\User,并更新配置文件config/auth.php。在kernel.php中添加相应的中间件配置,并在Route.php中设置相应的路由代码进行测试。

以下是具体的解决方法:

首先,创建两个新的模型:App\Admin和App\User。

然后,更新配置文件config/auth.php,将默认的guard和passwords设置为'user'。同时,为'user'和'admin'分别配置guards和providers。

接下来,配置passwords,为'user'和'admin'分别设置provider、email、table和expire。

在kernel.php的middleware中添加相应的中间件。

在middlewareGroups中的'web'中添加EncryptCookies和AddQueuedCookiesToResponse中间件。

在Route.php中设置'/login'和'/profile'的路由,并进行相应的身份验证和用户信息打印。

尽管配置文件中的guards、providers和passwords相似,但是这是实现多个身份验证驱动程序所必需的重复配置。

0