我们正在为我们的应用程序创建一个Web应用程序。我们的应用程序具有数据库,而我们的Web应用程序具有另一个数据库。已经决定使用API与APP数据库进行通信,而不是使用一个数据库来完成所有操作。
因此,由于这个原因,我必须找出如何从Web应用程序中其他数据库中对用户进行身份验证。
我有数据库连接的详细信息,下面是到目前为止我所做的。
在auth.php中
'defaults' => [
'guard' => 'custom_guard',
]
'guards' => [
// default guards here,
'custom_guard' => [
'driver' => 'session',
'provider' => 'custom_users'
],
]
'providers' => [
//default providers,
'custom_users' => [
'driver' => 'eloquent',
'model' => App\Models\Custom_User::class,
]
]
在App \ Models \ Custom_User中
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Custom_User extends Authenticatable
{
use Notifiable;
protected $guard = 'custom_guard';
protected $connection = 'secondary_connection';
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
//fillable stuff
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
//hidden stuff
];
}
在database.php中
'secondary_connection' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
除此之外,我还需要做些什么,或者基于另一个数据库中的用户进行身份验证的最佳方法是什么?