Laravel:如何从Web应用程序中的其他数据库对用户进行身份验证?

时间:2019-05-29 21:49:07

标签: php database laravel authentication

我们正在为我们的应用程序创建一个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,
        ],

除此之外,我还需要做些什么,或者基于另一个数据库中的用户进行身份验证的最佳方法是什么?

0 个答案:

没有答案