Estoy usando una base de datos existente y no puedo modificar las tablas, por lo que agregar un token de recuerdo no es una opción, pero sin él no puedo iniciar sesión. Cuando intento iniciar sesión, Laravel verifica las credenciales y devuelve si coinciden con los registros, pero solo actualiza la página. Estoy bastante seguro de que Remember_token es la causa, ya que me encontré con este problema antes, pero esta vez no puedo agregar una columna a mi tabla de usuarios.
¿Hay alguna forma de usar la autenticación lista para usar sin el token de recuerdo?
En su modelo de usuario agregue:
/** * Overrides the method to ignore the remember token. */ public function setAttribute($key, $value) { $isRememberTokenAttribute = $key == $this->getRememberTokenName(); if (!$isRememberTokenAttribute) { parent::setAttribute($key, $value); } }Créditos: https://laravel.io/forum/05-21-2014-how-to-disable-remember-token
Desde Laravel v5.3.27, también puede deshabilitar la funcionalidad de recordarme configurando $rememberTokenName en false en su modelo de usuario.
class User extends Authenticatable { use Notifiable; protected $rememberTokenName = false; // ... }fuente: este compromiso
Para deshabilitar realmente la funcionalidad "recordarme" y asegurarse de que no se use el campo de recordar_token, agregue el siguiente código al método de arranque de App\Providers\AuthServiceProvider.
Auth::provider('eloquent', function($app, array $config) { return new class($app['hash'], $config['model']) extends \Illuminate\Auth\EloquentUserProvider { public function retrieveByToken($identifier, $token) { return null; } public function updateRememberToken(\Illuminate\Contracts\Auth\Authenticatable $user, $token) { //Do nothing } }; });asumiendo una configuración predeterminada de Laravel, el código anterior funcionará instantáneamente.
Por supuesto, se puede mejorar definiendo el proveedor de usuario personalizado en un archivo separado en lugar de usar una clase anónima.