1

Buenas tardes solicito ayuda con la siguiente cuestión: Tengo un formulario de registro y login de acuerdo al comando php artisan make:auth. Pero he creado dos tablas mas a la que se crea con la migración inicial.

Estas tablas tienen registros de otros usuarios segun sus roles, pero cuando requiero realizar la recuperación de contraseña desde la vista de recuperación de contraseña que proporciona laravel solo busca al usuario de la tabla users (de la que viene por migración). Y es a este usuario a quien le permite cambiar su contraseña.

Como puedo hacer que...

'defaults' => [
    'guard'     => 'web',
    'passwords' => 'users',
],

me permita buscar en las demás tablas de mi bd y proporcionar el cambio de contraseña. Ya que si le cambio a doctors busca y hace el envio de correo segun la tabla y tambien aplica si cambio a pacientes. Anexo mi configuración de auth.php.

 /*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
    'guard'     => 'web',
    'passwords' => 'users',
],

/*
|--------------------------------------------------------------------------
| Authentication Guards
|--------------------------------------------------------------------------
|
| Next, you may define every authentication guard for your application.
| Of course, a great default configuration has been defined for you
| here which uses session storage and the Eloquent user provider.
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| Supported: "session", "token"
|
*/

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
        'hash' => false,
    ],
    'doctors' => [
        'driver' => 'session',
        'provider' => 'doctors',
    ],        
    'pacientes' => [
        'driver' => 'session',
        'provider' => 'pacientes',
    ],
    // 'admin' => [
    //     'driver' => 'session',
    //     'provider' => 'admin',
    // ],
],

/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'doctors' => [
        'driver' => 'eloquent',
        'model' => App\Doctor::class,
    ],

    'pacientes' => [
        'driver' => 'eloquent',
        'model' => App\Paciente::class,
    ],

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],

/*
|--------------------------------------------------------------------------
| Resetting Passwords
|--------------------------------------------------------------------------
|
| You may specify multiple password reset configurations if you have more
| than one user table or model in the application and you want to have
| separate password reset settings based on the specific user types.
|
| The expire time is the number of minutes that the reset token should be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
*/

'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
        'throttle' => 60,
    ],
    'doctors' => [
        'provider' => 'doctors',
        'table' => 'password_resets',
        'expire' => 60,
        'throttle' => 60,
    ],
    'pacientes' => [
        'provider' => 'pacientes',
        'table' => 'password_resets',
        'expire' => 60,
        'throttle' => 60,
    ],
],
2
  • Hola, ya revisaste el controlador que maneja el inicio de sesión de laravel? Commented el 21 mar. 2022 a las 2:45
  • El controlador del login no es el problema, es al querer utilizar la recuperación de contraseña mediante token. Solo busca la tabla users,segun el default aunthentication, mas no realiza la búsqueda en mis otras tablas. Commented el 21 mar. 2022 a las 13:59

0

Examina otras preguntas con la etiqueta o formula tu propia pregunta.