您好,登錄后才能下訂單哦!
在Laravel中實(shí)現(xiàn)多表認(rèn)證可以通過自定義認(rèn)證驅(qū)動(dòng)來(lái)實(shí)現(xiàn)。以下是一個(gè)簡(jiǎn)單的示例:
<?php
namespace App\Providers;
use Illuminate\Auth\EloquentUserProvider;
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
class CustomUserProvider extends EloquentUserProvider
{
public function retrieveByCredentials(array $credentials)
{
if (empty($credentials) ||
(count($credentials) === 1 &&
array_key_exists('password', $credentials))) {
return;
}
$query = $this->createModel()->newQuery();
foreach ($credentials as $key => $value) {
if (! Str::contains($key, 'password')) {
$query->where($key, $value);
}
}
return $query->first();
}
}
'providers' => [
'users' => [
'driver' => 'custom',
'model' => App\User::class,
],
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],
use Illuminate\Support\Facades\Auth;
public function boot()
{
Auth::provider('custom', function ($app, array $config) {
return new CustomUserProvider($app['hash'], $config['model']);
});
}
通過以上步驟,就可以實(shí)現(xiàn)在Laravel中使用多表認(rèn)證。在使用時(shí)可以根據(jù)自己的需求進(jìn)行適當(dāng)?shù)恼{(diào)整和修改。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。