Authentication Laravel寄存器不';t登录用户
因此,我查看了大量关于如何注册以及如何登录laravel的信息,我让我的用户成功注册&分别成功登录。但是,当你登记时,它不认为你登录,无论我尝试什么,我似乎不能让它工作。< /P> 这是我的登录名: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) )
$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')}这是我的表单,有什么想法吗?这个。如果您想让他们在注册后立即登录,那么您需要调用登录方法作为成功注册操作的一部分。您是对的,如果我将密码作为密码输入,它就可以工作,但是将其更改为您建议的不会改变这一点。如果我输入的密码不是密码,它不会登录,有什么建议吗?