2015-04-29 17 views
6

Quindi sto seguendo questo angular/Laravel 5 tutorial utilizzando token Web JSON. Mi sto imbattendo in un problema.Creazione utente in Laravel 5

Ecco come si dice creare un utente:

Route::post('/signup', function() { 
    $credentials = Input::only('email', 'password','name'); 

    try { 
     $user = User::create($credentials); 
    } catch (Exception $e) { 
     return Response::json(['error' => 'User already exists.'], Illuminate\Http\Response::HTTP_CONFLICT); 
    } 

    $token = JWTAuth::fromUser($user); 

    return Response::json(compact('token')); 
}); 

Il problema è, User::create($credentials); non crittografa la password, significato, gli account di accesso sarà sempre esito negativo. Ho trovato questo usando la registrazione di default di Laravel.

La mia domanda è, come posso creare un nuovo utente che lo crea nel modo corretto?

risposta

12

È necessario cancellare manualmente la password utilizzando Hash helper class. Prova questo:

Route::post('/signup', function() { 
    $credentials = Input::only('email', 'password','name'); 
    $credentials['password'] = Hash::make($credentials['password']); 
    try { 
     $user = User::create($credentials); 
    } catch (Exception $e) { 
     return Response::json(['error' => 'User already exists.'], Illuminate\Http\Response::HTTP_CONFLICT); 
    } 

    $token = JWTAuth::fromUser($user); 

    return Response::json(compact('token')); 
});