【发布时间】:2014-12-29 06:06:14
【问题描述】:
大家好,我有一个带有 laravel 的简单应用程序,我尝试向我的应用程序添加用户身份验证,这是我的 route.php 文件:
Route::model('task', 'Task');
Route::get('/login', 'HomeController@ShowLogin');
Route::post('/login', 'HomeController@doLogin');
Route::get('/logout' , 'HomeController@doLogout');
Route::group(array('before'=>'auth'), function(){
Route::get('/', 'TasksController@home');
Route::get('/create', 'TasksController@create');
Route::get('/edit/{task}', 'TasksController@edit');
Route::post('/edit', 'TasksController@doEdit');
Route::post('/create' , 'TasksController@saveCreate');
Route::get('/delete/{task}' , 'TasksController@delete');
Route::post('/delete', 'TasksController@doDelete');
Route::get('/task/{id}' , 'TasksController@show')->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"> </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
当我输入任何用户名和密码时,我没有出错并且我从未登录,并且我重定向到登录页面并且 dd() 总是返回 bool(false),任何人都可以帮忙,并解释更多关于 Laravel 中的身份验证的信息,谢谢你:)
编辑
这是我的模型/User.php,我没有添加任何代码:
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
protected $table = 'users';
protected $hidden = array('password', 'remember_token');
}
我手动创建我的用户表
【问题讨论】:
-
你能把你的用户模型代码过去吗?
-
你如何保存用户?
-
@KalhanoToressPamuditha 我认为如果我们只想创建一个用户,我们需要保存用户,但在这里我想检查一个用户是否存在于数据库中
-
ok 好像你可以在 doLogin() 中正确获取用户名和密码,你的密码字段是否在数据库中散列?
-
不,我手动将用户添加到数据库,我不散列他们
标签: php authentication laravel laravel-4