usuarios usuario tabla personalizado modificar está esta diferente con campos cambiar autorizada auth autenticacion administrador acción php laravel laravel-5

php - usuario - modificar login laravel



Laravel: ¿Cómo puedo cambiar el nombre de campo predeterminado de la contraseña de autenticación? (4)

En la app/Http/Controllers/Auth/LoginController anula la clase predeterminada agregando:

/** * Validate the user login request. * * @param /Illuminate/Http/Request $request * @return void */ protected function validateLogin(Request $request) { $this->validate($request, [ $this->username() => ''required'', ''passwd'' => ''required'', ]); }

No olvide agregar el use Illuminate/Http/Request;

Podría ser que tenga que agregar esto también a su LoginController .

/** * Get the needed authorization credentials from the request. * * @param /Illuminate/Http/Request $request * @return array */ protected function credentials(Request $request) { return $request->only($this->username(), ''passwd''); }

Deberias hacer eso.

Actualmente estoy trabajando en mi primer proyecto de laravel y estoy enfrentando un problema.

Si tiene experiencia con laravel, probablemente sepa que al llamar a php artisan make:auth obtendrá un mecanismo predefinido que maneja el inicio de sesión y el registro.

Este mecanismo está configurado para comprender un par de palabras de uso común con el fin de automatizar todo el procedimiento.

El problema que ocurre en mi caso es que estoy usando Oracle DB y no me deja tener una columna de tabla con el nombre de password porque es una palabra clave del sistema y arroja errores al intentar insertar un usuario.

Hasta ahora, he tratado de cambiar mi columna de password para passwd y funcionó en mi formulario de registro como se esperaba. La fila Usuario se insertó con éxito y mi página se redirigió a / home.

Pero cuando intento cerrar la sesión y volver a iniciar sesión, aparece este error que me dice que mis credenciales no son correctas.

En cuanto a mi código, he cambiado mi RegisterController.php para que tome nombre de usuario en lugar de correo electrónico

protected function validator(array $data) { return Validator::make($data, [ ''username'' => ''required|max:50|unique:ECON_USERS'', ''passwd'' => ''required|min:6|confirmed'', ]); } protected function create(array $data) { return User::create([ ''username'' => $data[''username''], ''passwd'' => bcrypt($data[''passwd'']) ]); }

El usuario $ rellenable

protected $fillable = [ ''username'', ''passwd'' ];

Supongo que Auth está intentando autenticarse con un email y no con un username o que Auth está buscando una password y no passwd


En su AuthController.php (ubicado en la aplicación / http / Controladores / Auth)

public function postLogin(Request $request) { $this->validate($request, [ ''username'' => ''required'', ''password'' => ''required'', ]); $credentials = ($request->only(''username'', ''password'')); if ($this->auth->attempt($credentials)) { //do something, credentials is correct! } return "Ops! snap! seems like you provide an invalid login credentials"; }


Por tener un username de username lugar de un email , puedes sobreescribir el nombre de usuario () en tu LoginController.php

/** * Get the login username to be used by the controller. * * @return string */ public function username() { return ''username''; }

Y para passwd lugar de password , puede definir un acceso en su App / User.php

/** * Get the password for the user. * * @return string */ public function getAuthPassword() { return $this->passwd; }

login.blade.php : Reemplace la entrada de email con username pero no cambie el nombre de la entrada por password .


Utilizar esta. Es trabajo para mi

Hasta ahora he cambiado el User.php

public function getAuthPassword(){ return $this->senha; }

y

public function setPasswordAttribute($value) { $this->attributes[''password''] = bcrypt($value); }

También en LoginController.php

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