Konu günceldir umarım bu başlık altında bende başka bir soru sormak istiyorum.
Öncelikle Aldığım hata mesajı
{"error":"Undefined index: password","line":106,"toFile":"...\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\EloquentUserProvider.php"}
Konuyu nette araştırdım EloquentUserProvider sınıfının 106. satırında
$plain = $credentials['password'];
kısımı var. Yaptığım Login Model classı :
namespace Models\LogonModel;
use Models\UserModel\User;
use Models\RepositoryInterface\StoreRepositoryInterface;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
use Illuminate\Support\Facades;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Input;
class Logon extends \Eloquent implements UserInterface,ILogonModel {
protected $table ='users';
protected $fillable = array('ID','userName','userEmail','userPassword','userMeta');
public function __construct()
{
}
/**
*
* @param $userEmail
* @param $userPassword
*/
public function hasUser($userEmail,$userPassword)
{
/*$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
$_SESSION['token_time'] = time();*/
$hasUser = Logon::where('users.userEmail','=',$userEmail)
->where('users.userPassword','=',$userPassword)->get()->count();
$user = null;
if($hasUser){
if( Auth::attempt(array('userEmail'=>$userEmail,'userPassword'=>$userPassword)))
{
$user = User::where('users.userEmail','=',$userEmail)
->where('users.userPassword','=',$userPassword)->first();
Session::put('dashboard.logon',$user);
}
}
return $hasUser;
}
public function getAuthIdentifier()
{
return $this->getKey();
}
public function getAuthPassword()
{
return $this->userPassword;
}
public function getReminderEmail()
{
return $this->userEmail;
}
public function getRememberToken()
{
return $this->remember_token;
}
public function setRememberToken($value)
{
$this->remember_token = $value;
}
public function getRememberTokenName()
{
return 'remember_token';
}
}
MvvM kalıbını uyguluyorum
LoginViewModel
namespace ViewModels\Logon;
use Illuminate\Support\Facades;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Input;
use Models\LogonModel\ILogonModel;
class LogonViewModel extends AbstractLogonViewModel implements ILogonViewModel {
private $Logon;
private $Model;
public $showMessage;
public $isShowMessage;
protected $LogonFormRules = array(
'email'=>'required|email:unique:users',
'password'=>'required|alpha_num:between:4,12'
);
protected $Messages = array(
'email'=>' Invalid Email address',
'password' =>'Password must be not required',
'email.required' => 'Required field Email',
'password.between'=> 'The :attribute must be between :min - :max.',
'password.required' => 'Required field Password'
);
public function __construct(ILogonView $LogonPresenter,ILogonModel $LogonModel)
{
$this->Logon = $LogonPresenter;
$this->Model = $LogonModel;
}
public function loginFormSubmit()
{
$validator = Validator::make(Input::all(),$this->LogonFormRules,$this->Messages);
if($validator->fails())
{
return Redirect::to('/login')->withErrors($validator)->withInput();
}
$user = $this->Model->hasUser(Input::get('email'),Input::get('password'));
if( $user)
{
Auth::login($user,true);
return Redirect::to('/manager');
}else{
$this->isShowMessage = true;
$this->showMessage = "User email or password not matched !";
return View::make('login.index')->with(array('model'=>$this));
}
}
public function registerFormSubmit(){
$getData = Input::all();
$this->showMessage = "Success ,register!.";
$this->isShowMessage = true;
return View::make('login.register')->with('model',$this);
}
public function Display($view)
{
echo View::make($view)->with('model',$this);
}
protected function ShowMessage( $message){
$this->ShowMessage = $message;
$this->isShowMessage = true;
return View::make('login.index')->with('model',$this);
}
}
veri tabanıdaki userPassword olarak tanımlı