Authentication Laravel寄存器不';t登录用户

Authentication Laravel寄存器不';t登录用户,authentication,login,registration,laravel,Authentication,Login,Registration,Laravel,因此,我查看了大量关于如何注册以及如何登录laravel的信息,我让我的用户成功注册&分别成功登录。但是,当你登记时,它不认为你登录,无论我尝试什么,我似乎不能让它工作。< /P> 这是我的登录名: $userdata = array( 'username' => Input::get('email'), 'password' => Input::get('password') ); if ( Auth::attempt($userdata) )

因此,我查看了大量关于如何注册以及如何登录laravel的信息,我让我的用户成功注册&分别成功登录。但是,当你登记时,它不认为你登录,无论我尝试什么,我似乎不能让它工作。< /P> 这是我的登录名:

$userdata = array(
    'username'      => Input::get('email'),
    'password'      => Input::get('password')
);

if ( Auth::attempt($userdata) ) {
        return Redirect::to('home');
    }  else  {
        return Redirect::to('login')
        ->with('login_errors', true);
    }
按预期工作,没有问题

这是我的登记簿:

$user = new User;
$user->username = Input::get('username');
$user->email    = Input::get('email');
$user->password = Hash::make('password');   
$user->save();

    return Redirect::to('home');
这同样有效,因为在创建用户时,用户可以选择登录。但是,如果我添加完全相同的
Auth::trunt()
,它将失败,所有其他
Auth::check()
s检查都将失败。我做错了什么?

如果Auth::trunt()需要像您提到的那样的数组,为什么不在重定向之前返回刚才创建为数组的$user并将其传递给trunt方法呢?再说一次,我不熟悉Laravel,但基于您的代码示例,我认为这应该是可行的。。可能是这样的:

$user = new User;
$user->username = Input::get('username');
$user->email    = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();

$userdata = array(
    'username'      => $user->username,
    'password'      => $user->password
);

if ( Auth::attempt($userdata ) ) {
        return Redirect::to('home');
    }
Hash::make()不检索给定参数的已发布值

而不是
Hash::make('password')
,试试Hash::make(输入::获取('password')
我的问题是,您的用户现在使用的是密码“password”,而不是他们在注册表中填写的密码。

是否显示任何错误消息?不,我只是在注册后无法访问该用户无意冒犯,但您误解了他,第一个示例显示的是登录,第二个示例是注册,他刚刚展示了这一点,您提供的是,您将注册和登录绑定在一起Auth::trunt需要一个数组,如果我传递$user,它会error@LeventeNagy我想他希望他们注册后再登录你是对的@tai,当他们注册后,我应该可以访问他们的用户,他们不需要再登录。我尝试了你建议的方法,结果也一样,在rob给出答案后,我改变了输入,在密码中加入了散列,但我的问题似乎是,它只接受密码作为密码,如果我这样做,它会很好地注册。{Form::label('password','password')。Form::password('password')}这是我的表单,有什么想法吗?这个。如果您想让他们在注册后立即登录,那么您需要调用登录方法作为成功注册操作的一部分。您是对的,如果我将密码作为密码输入,它就可以工作,但是将其更改为您建议的不会改变这一点。如果我输入的密码不是密码,它不会登录,有什么建议吗?