Laravel认证失败

utdev

我遇到了一个问题,我的认证不断进入else语句,而我在登录表单中输入了正确的电子邮件和密码。使用else语句,我的意思是我的SessionController的最后一行

    else 

    {
       return Redirect::to('login')
    }

这是我的routes.php

// ~ Root
Route::get('/', array('as' => 'root', 'uses' => 'PageController@showIndex'));

// ~ Session ~ Login ~ Logout
Route::get('login', array('as' => 'newSession', 'uses' => 'SessionController@newSession'));
Route::post('login', array('as' => 'setSession', 'uses' => 'SessionController@setSession'));
Route::get('logout', array('as' => 'destroySession', 'uses' => 'SessionController@destroySession'));

这是我的SessionController

<?php

class SessionController extends BaseController {

    public function newSession() {

        $this->layout->content = View::make('login');

    }

    public function setSession() {

        $rules = array(
            'email'    => 'required|email',
            'password' => 'required|alphaNum|min:3'
        );

        $validator = Validator::make(Input::all(), $rules);

        if ($validator->fails()) {
            return Redirect::to('login')
                ->withErrors($validator)
                ->withInput(Input::except('password'));
        } else {

            // create our user data for the authentication
            $userdata = array(
                'email'     => Input::get('email'),
                'password'  => Input::get('password')
            );

            // attempt to do the login
            if (Auth::attempt($userdata)) {

                return Redirect::to('asd');

            } else {
                return Redirect::to('login')
                ->withErrors($validator)
                ->withInput(Input::except('password'));
                // validation not successful, send back to form
                // return Redirect::to('login')->withErrors($validator);
            }
        }
    }

    public function destroySession() {

        Auth::logout();
        return Redirect::to('login')->with('message', 'You are logged out'); 

    }
}

这是我的表格

{{ Form::open(array('action' => 'SessionController@setSession', 'method' => 'POST', 'class' => 'form-horizontal navbar-form navbar-right')) }}
<div id="navbar" class="navbar-collapse collapse">
    <div class="form-group">
        <p>
            {{ $errors->first('email') }}
            {{ $errors->first('password') }}
        </p>
        <p>
            {{ Form::label('email', 'Email Address', array('class' => 'navLogTxt')) }}          
            {{ Form::text('email', Input::old('email'), array('class' => 'form-control')) }}      
            {{ Form::label('password', 'Passwort', array('class' => 'navLogTxt')) }}            
            {{ Form::password('password', array('class' => 'form-control')) }}
            {{ Form::submit('Anmelden!', array('class' => 'btn btn-success')) }}
        </p>                        
    </div>
</div>
{{ Form::close() }}

最后这是我的种子

<?php

class UserTableSeeder extends Seeder {

    public function run() {

        DB::table('users')->delete();
        User::create(array(
            'email'    => '[email protected]',
            'password' => Hash::make('awesome')
        ));
        User::create(array(
            'email'    => '[email protected]',
            'password' => 'test'
        ));

    }

}
博格丹

取自Laravel身份验证文档

请记住:为该模型构建数据库架构时,请使password列至少为60个字符另外,在开始之前,请确保您的用户(或等效表)表包含100个字符的可为空的字符串Remember_token列。

为了将来参考,Laravel附带了users的迁移,您可以在中找到database/migrations/2014_10_12_000000_create_users_table.php您可以users通过运行来使用它生成php artisan migrate

当然,除了在那里定义的默认列之外,您还可以添加其他列,只需阅读Schema Builder文档以获取更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章