2013-03-30 145 views
1

所以我看过如何注册以及如何使用laravel登录的信息的加载和加载,我已让我的用户成功注册&分别成功登录。但是,当你注册时,它并不认为你已经登录,不管我尝试了什么,我似乎无法让它工作。Laravel注册不会登录用户

这是我的登录名:

$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::attempt(),它失败了,所有其他的。 Auth::check() s检查尝试失败。它在做什么错了?

+0

是否显示任何错误消息? –

+0

不,我只是没有登录 – gardni

回答

1

如果Auth :: attempt()期望像你提到的数组,那么为什么不直接取回刚刚创建的$ user作为数组,并在重定向之前将它传递给try方法?再次,不熟悉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'); 
    } 
+0

登录后没有进入用户,但你误解了他,第一个例子他显示登录,第二个登记册,他只是表明,工程,你提供的是,你绑注册和登录在一起 –

+0

验证::尝试期望一个数组,如果我通过$用户它将错误 – gardni

+0

@LeventeNagy我想他希望他们登录后登记 – bruchowski

1

哈希::使()不获取给定参数的值公布。

而不是Hash::make('password');,请尝试Hash::make(Input::get('password'));。 我的想法是,您的用户现在拥有密码“密码”,而不是他们在注册表中填写的内容。

+0

你是对的,如果我把密码作为密码它的作品,然而改变这是你建议不会改变这一点。如果我把一个密码以外的密码它不登录,任何建议? – gardni