Aquí están las fachadas que usé
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
He creado con éxito la página de registro de usuario con contraseña hash usando bcrypt.
//Get singnup view
public function getSignup()
{
return view('user.signup');
}
//Process signup
public function postSignup(Request $request)
{
$this->validate($request, [
'email' => 'email|required|unique:users',
'password' => 'required|min:4'
]);
$user = new User([
'email' => $request->input('email'),
'password' => bcrypt($request->input('password')),
]);
$user->save();
return redirect()->route('product.index');
}
Y ahora estoy atrapado en la página de inicio de sesión. El intento Auth :: siempre devuelve falso. Incluso intenté almacenar una contraseña simple en mi base de datos e iniciar sesión sin bcrypt, pero aún así resultó falso. No tengo idea de dónde estoy equivocado en este momento.
//Get signin view
public function getSignin()
{
return view('user.signin');
}
//Process signin
public function postSignin(Request $request)
{
$this->validate($request, [
'email' => 'email|required',
'password' => 'required|min:4'
]);
$credentials = array(
'email' => $request->input('email'),
'password' => bcrypt($request->input('password'))
);
if(Auth::attempt($credentials))
{
return redirect()->route('user.profile');
}
return redirect()->route('product.index');
}
3 respuestas
No necesita bcrypt()
en Auth::attempt()
. Elimínalo e inténtalo de nuevo.
En config\auth
, la configuración del controlador de cambio de guardia está establecida en api
.
'defaults' => [
'guards' => 'api',
'passwords' => 'users'
]
Pero Laravel no admite la función attempt()
con guardia api
. Por lo tanto, debe usar algunos paquetes como Passport
(Puede hacer referencia aquí )
O más simple, simplemente configure su controlador de guardia con Auth::guard('api')->attempt($credentials)
Espero que esto resuelva tu problema.
¿Puedes intentar eliminar bcrypt()
en tus User::create
y Auth::attempt()
?
Aunque mencionaste que intentaste hacer eso, no estoy seguro de si los has hecho juntos.
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.