public function actionLogin() { $result = ApiModule::$defaultResponse; $this->checkRequest(); $q = $this->q; $this->checkRequiredParams($q, array('nric', 'password')); //==================LOGIN================= $model = new ApiLoginForm(); $model->scenario = 'login_admin'; $model->nric = trim($q->nric); $model->password = $q->password; $model->role_id = ROLE_AGENT; if (!$model->validate()) { $result['message'] = Yii::t('systemmsg', 'Login ID or password is wrong'); $result['record_error_key'] = array_keys($model->getErrors()); $result['record_error'] = $model->getErrors(); ApiModule::sendResponse($result); } $mUser = ApiUsers::model()->getByNric($q->nric); //=================SAVE TOKEN============= //create token $mUsersTokens = new UsersTokens(); $mUsersTokens->user_id = $mUser->id; $mUsersTokens->token = md5($mUser->id . time() . rand(100000, 1000000)); $mUsersTokens->last_login = date('Y-m-d H:i:s'); $mUsersTokens->has_expired = 0; $mUsersTokens->language = 'en'; if (!empty($q->apns_device_token)) { $mUsersTokens->apns_device_token = $q->apns_device_token; } if (!empty($q->gcm_device_token)) { $mUsersTokens->gcm_device_token = $q->gcm_device_token; } $mUsersTokens->save(); $mUsersTokens->token = $mUsersTokens->token . $mUsersTokens->id; $mUsersTokens->update(array('token')); //==================RESPONSE============== $result = ApiModule::$defaultSuccessResponse; $result['message'] = Yii::t('systemmsg', 'Login success'); $result['token'] = $mUsersTokens->token; $result['record'] = array('nric' => $mUser->nric_passportno_roc, 'email' => $mUser->email); ApiModule::sendResponse($result); }
public function logout($token) { $criteria = new CDbCriteria(); $criteria->compare('token', $token); UsersTokens::model()->deleteAll($criteria); }
public function checkToken($token = null) { $result = ApiModule::$defaultResponse; if ($token === null) { $token = $this->q->token; } if (!UsersTokens::model()->checkToken($token)) { $result['message'] = 'Token is invalid or expired'; ApiModule::sendResponse($result); } }