Laravel 4.2를 설치했지만 'Auth :: attempt()'함수를 사용하여 사용자를 허용 할 수는 있지만 문제가 발생했습니다. 'Auth :: loginUsingId()'함수를 사용하여 로그인하십시오.Laravel 4 - Auth :: attempt()가 작동하지 않고 FALSE를 반환했습니다.
내 사용자 모델
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
public $timestamps = false;
protected $table = 'user';
protected $primaryKey = 'user_id';
protected $hidden = array('user_pass', 'remember_token');
public function getAuthIdentifier(){
return $this->getKey();
}
public function getAuthPassword(){
return $this->user_pass;
}
public function getRememberToken(){
return $this->user_remembertoken;
}
public function setRememberToken($value){
$this->user_remembertoken = $value;
}
public function getRememberTokenName(){
return "user_remembertoken";
}
public function getReminderEmail(){
return $this->user_email;
}
}
내 경로 (I 일부 exaple에 넣었습니다)
Route::get('login', function(){
$user = 'dd';
$pass = '123456';
$credentials =["user_nickname" => "dd","user_pass" => "123456"];
if(Auth::attempt($credentials)){
echo 'Login Successful';
}
else{
echo 'Login Failed';
}
});
Route::get('check', function()
{
if(Auth::check()){echo 'identified';}
else{echo 'not identified';}
return;
});
Route::get('reg', function()
{
$user = new User;
$user->user_nickname = 'dd';
$user->user_pass = Hash::make('123456');
$user->user_realname = 'dd';
$user->user_email = '[email protected]';
$user->user_accesslevel = 1;
$user->user_language = 'HU';
$user->save();
});
Route::get('forcelogin', function()
{
Auth::loginUsingId(6,TRUE);
return;
});
내 데이터베이스
user_id | smaillint
user_nickname | varchar(25)
user_pass | char(60)
user_email | varchar(255)
user_realname | varchar(60)
user_accesslevel | tinyint(3)
user_language | char(2)
user_regdate | timestamp
user_remembertoken | char(60)
팁 : 더 나은 데이터베이스 디자인을 수행하십시오. 테이블 "사용자"가 있고 열 "id"가 분명히 사용자의 ID 인 경우 user_id로 지정하지 않아도됩니다. 언급 한 모든 열에도 똑같이 적용됩니다. $ user-> id는 $ user-> user_id보다 의미가 있습니다. – thegeekajay