Beispiel #1
0
 /**
  * ログインを実行する.
  *
  * ログインを実行し, 成功した場合はユーザー情報をセッションに格納し,
  * true を返す.
  * モバイル端末の場合は, 携帯端末IDを保存する.
  * ログインに失敗した場合は, false を返す.
  *
  * @param  string  $login_email ログインメールアドレス
  * @param  string  $login_pass  ログインパスワード
  * @return boolean|null ログインに成功した場合 true; 失敗した場合 false
  */
 public function doLogin($login_email, $login_pass)
 {
     switch (Application::alias('eccube.display')->detectDevice()) {
         case DEVICE_TYPE_MOBILE:
             if (!$this->getCustomerDataFromMobilePhoneIdPass($login_pass) && !$this->getCustomerDataFromEmailPass($login_pass, $login_email, true)) {
                 return false;
             } else {
                 // Session Fixation対策
                 SessionHelper::regenerateSID();
                 $this->updateMobilePhoneId();
                 return true;
             }
             break;
         case DEVICE_TYPE_SMARTPHONE:
         case DEVICE_TYPE_PC:
         default:
             if (!$this->getCustomerDataFromEmailPass($login_pass, $login_email)) {
                 return false;
             } else {
                 // Session Fixation対策
                 SessionHelper::regenerateSID();
                 return true;
             }
             break;
     }
 }
Beispiel #2
0
 /**
  * ログイン情報セッション登録
  *
  * @param  integer $member_id  メンバーID
  * @param  string  $login_id   ログインID文字列
  * @param  integer $authority  権限ID
  * @param  string  $login_name ログイン表示名
  * @param  string  $last_login 最終ログイン日時(YYYY/MM/DD HH:ii:ss形式) またはNULL
  * @return string  $sid 設定したセッションのセッションID
  */
 public function lfSetLoginSession($member_id, $login_id, $authority, $login_name, $last_login)
 {
     // Session Fixation対策
     SessionHelper::regenerateSID();
     $objSess = new Session();
     // 認証済みの設定
     $objSess->SetSession('cert', CERT_STRING);
     $objSess->SetSession('member_id', $member_id);
     $objSess->SetSession('login_id', $login_id);
     $objSess->SetSession('authority', $authority);
     $objSess->SetSession('login_name', $login_name);
     $objSess->SetSession('uniqid', $objSess->getUniqId());
     if (Utils::isBlank($last_login)) {
         $objSess->SetSession('last_login', date('Y-m-d H:i:s'));
     } else {
         $objSess->SetSession('last_login', $last_login);
     }
     return $objSess->GetSID();
 }