$inputs["mail"] = Input::get('mail');
$password = Hash::make(Input::get("password",""));
$user = new User();
$user->password=$password;
$inputs["password"] = $password;
if( Auth::attempt($inputs) )
{
return 'loginOK';
}
else
{
return 'false';
}
我认为$ password与数据库的密码不同。 我需要尝试其他方式吗?
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface,
RemindableInterface {
protected $table ='users';
public function getAuthIdentifier(){
return $this->getKey();
}
public function getRememberToken(){
return $this->remember_token;
}
public function getAuthPassword(){
return $this->password;
}
public function setRememberToken($value){
$this->remember_token = $value;
}
public function getRememberTokenName(){
return 'remember_token';
}
public function getReminderEmail() {
return $this->email;
}
}
是用户模型。
无法使auth :: atempt正常工作 这是什么问题?
$input = [
'mail' => Input::get('mail'),
'password' => Input::get('password'),
];
if (Auth::attempt($input)) {
echo 'Success';
} else {
echo 'Failed';
}
我是由folower编辑的。 我有麻烦。 我仍然无法获得
答案 0 :(得分:1)
问题在于您将Hashed密码传递给attempt方法,该方法实际上需要未散列的密码并自行进行散列,所以这样做:
$inputs["password"] = Input::get('password');
应该这样做。
我不确定你是否在玩,但你的代码没有正确编写,你应该考虑直接使用Input对象。
答案 1 :(得分:0)
两件事:
完成以下操作就足够了:
$input = [
'mail' => Input::get('mail'),
'password' => Input::get('password'),
];
if (Auth::attempt($input)) {
echo 'Success';
} else {
echo 'Failed';
}