Laravel: ¿Cómo utilizo otros datos que el correo electrónico y la contraseña?

Pregunta hecha: hace 10 meses Ultima actividad: hace 10 meses
up 2 down

Quiero usar sólo el número de CPF para permitir el inicio de sesión. CPF es como un Número de Seguro Social o bien por igual, y eso es un número único en Brasil. Ya tengo una tabla de datos con este número, por lo que no se necesita registro.

¿Dónde puedo cambiar el código para aceptar la ACB en lugar de correo electrónico y contraseña, por favor?

¡Gracias!

2 respuestas

Quizás tu proyecto necesite tarjetas de vector libre. Nuestro sitio tiene mapas para todos los países.

Publicación patrocinada

up 1 down accepted

Tendrá que sustituir estos métodos en su LoginController, simplemente pegar esto en y cambiar en consecuencia.

cambio por defecto email a cpf nombre del campo:

public function username()
{
    return 'cpf'; // or whatever field you use to login
}

Hacer la validación aquí con credenciales:

protected function validateLogin(Request $request)
{
    $request->validate([
        $this->username() => 'required|string|exists:users,cpf',
    ]);
}

Hacer la solicitud de inicio de sesión. Aquí buscamos usuario entonces hace que ingrese en forma manual y le redirigirá al tablero de instrumentos (casa), si no, se le redirige a la entrada que se insertó en la forma:

public function login(Request $request)
{
    $this->validateLogin($request);

    $user = User::where('cpf', $request->cpf)->first();

    if ($user) {
        Auth::login($user);
        return redirect()->intended('home');
    }

    return redirect()->back()->withInput($request->all());
}

tabla DB Probé con:

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('cpf')->unique();
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->rememberToken();
    $table->timestamps();
});
up 1 down

Paso 1: abrir archivo AuthenticatesUsers.php

Paso 2: actualizar el username() función, por defecto verá correo electrónico. necesita actualizar a la ACB.

   public function username()
    {
        return 'cpf';
    }

Paso 3: actualizar el credentials(Request $request) función, que por defecto es password. puede cambiar de acuerdo con su enfoque. si no lo quiere, puede quitar el campo de la contraseña también!

    protected function credentials(Request $request)
    {
        //return $request->only($this->username(), 'password');
        return $request->only($this->username());
    }