2014-11-02 2 views
1

Привет, ребята у меня есть простое приложение с Laravel и я пытаюсь добавить проверку подлинности пользователя в мое приложение, это мой route.php файл:Аутентифицировать пользователь Laravel

Route::model('task', 'Task'); 


Route::get('/login', '[email protected]'); 
Route::post('/login', '[email protected]'); 

Route::get('/logout' , '[email protected]'); 


Route::group(array('before'=>'auth'), function(){ 

Route::get('/', '[email protected]'); 
Route::get('/create', '[email protected]'); 
Route::get('/edit/{task}', '[email protected]'); 
Route::post('/edit', '[email protected]'); 
Route::post('/create' , '[email protected]'); 
Route::get('/delete/{task}' , '[email protected]'); 
Route::post('/delete', '[email protected]'); 

Route::get('/task/{id}' , '[email protected]')->where('id', '\d+'); 

}); 

это мой HomeController.php;

class HomeController extends BaseController { 

public function showLogin() 
{ 
    return View::make('login'); 
} 
public function doLogin() 
{ 
    $userdata = array(
     'username' => Input::get('username'), 
     'password' => Input::get('password') 
    ); 
    dd(Auth::attempt($userdata)); 

    if(Auth::attempt($userdata)) 
    { 

     return Redirect::to('/'); 
    } 
    else 
    { 
     return Redirect::to('login'); 
    } 
} 

public function doLogout() 
{ 
    Auth::logout(); 
    return Redirect::to('login'); 
} 

} 

и это мой login.blade.php файл:

@extends('layout') 
@section('content') 
<section class="header section-padding"> 
<div class="background">&nbsp;</div> 
<div class="container"> 
    <div class="header-text"> 
     <h1>Learning Laravel: The Easiest Way</h1> 
     <p> 
      Showing a single task <br/> using route parameter! 
     </p> 
    </div> 
</div> 
</section> 
<div class="container"> 
<section class="section-padding"> 
    <div class="jumbotron text-center"> 
     <h1> 
      Login 
     </h1> 
     <P> 
      {{ $errors->first('username') }} 
      {{ $errors->first('password') }} 
     </P> 

     {{ Form::open(['url' => '/login', 'class' => 'form']) }} 
     <div class="form-group"> 
      {{ Form ::label('username', 'Username:') }} 
      {{ Form::text('username')}} 
     </div> 
     <div class="form-group"> 
      {{ Form::label('password', 'Password:') }} 
      {{ Form::password('password') }} 
     </div> 
     <div class="form-group"> 
      {{ Form::submit('Login', ['class' => 'btn btn-primary']) }} 
     </div> 
     {{ Form::close() }} 
    </div> 
</section> 
</div> 
@stop 

, когда я ввести любое имя пользователя и пароль, я не получил сообщение об ошибке, и я никогда не войти в систему, и я перенаправлять на страницу входа и дд () всегда возвращает логическое значение (ложь), может любой помощи, что и объяснять больше о подлинности в Laravel, спасибо U :)

Редактировать

и это моя модель/User.php и я не добавлять код к этому:

class User extends Eloquent implements UserInterface, RemindableInterface { 

    use UserTrait, RemindableTrait; 


    protected $table = 'users'; 

    protected $hidden = array('password', 'remember_token'); 

} 

я создаю мой пользовательскую таблицу вручную

+0

Вы можете пройти мимо кода вашей модели пользователя? –

+0

Как сохранить пользователя? –

+0

@KalhanoToressPamuditha Я думал, что нам нужно сохранить пользователя, если только мы хотим создать пользователя, но здесь я хочу проверить, что пользователь существует в db или нет – Arman

ответ

1

Auth::attempt($userdata) метод хеширования password в $userdata массиве и проверить, что хэш пароля с значение базы данных,

так что вам нужно хеширования паролей в базе данных,

, чтобы проверить, что

пожалуйста изменить пароль в базе данных для $2y$10$3S3yDwfkwwLghedu4AoaTe//61QTaNC0ycTdp8hLfHtQS4XrgBPQy и использовать a для поля ввода пароля в виде

$2y$10$3S3yDwfkwwLghedu4AoaTe//61QTaNC0ycTdp8hLfHtQS4XrgBPQy является Laravel хэшируются пароль для a.