public function beforeSave($insert) { $user = AccessTokenService::getCurrentUser(); if ($this->isNewRecord) { $this->contr_no = ContractService::generateNumber(empty($this->oldcontr), $this->type, $this->oldcontr); $this->orgid = $user->orgid; $this->createtime = BaseDataHelper::getCurrentTime(); $this->userid = $user->id; } $this->modified = BaseDataHelper::getCurrentTime(); return parent::beforeSave($insert); // TODO: Change the autogenerated stub }
public static function validateAPIAuth($appkey, $clientid, $clientsecurity) { /** * @var AccessToken $accessToken * @var AccessApp $accessApp */ //app $accessApp = AccessApp::find()->andWhere('appkey=:appkey', array(':appkey' => $appkey))->one(); if (empty($accessApp)) { throw new Exception('传入appkey 错误'); } if ($accessApp->client_id != $clientid) { throw new Exception('client_id 错误'); } if ($accessApp->client_secret != $clientsecurity) { throw new Exception('client_secret 错误'); } $accessToken = AccessToken::findOne(array('clientid' => $clientid, 'appkey' => $appkey)); $usable = true; if (!empty($accessToken)) { $date1 = date_create(BaseDataHelper::getCurrentTime()); $date2 = date_create($accessToken->createtime); $diff = date_diff($date1, $date2); if ($diff->format('%y') > 0 || $diff->format('%m') > 0 || $diff->format('%d') > 0 || $diff->format('%h') > 0 || $diff->format('%i') > $accessToken->validity / 60) { $accessToken->delete(); $usable = false; } } else { $usable = false; } //token if (!$usable) { $accessToken = new AccessToken(); $accessToken->tokenid = DataHelper::random(10); $accessToken->appkey = $appkey; $accessToken->clientid = $clientid; $accessToken->validity = 600; //60秒 $accessToken->uid = $accessApp->uid; $accessToken->orgid = $accessApp->user->orgid; if (!$accessToken->save()) { var_dump($accessToken->errors); die; } //当前登录人信息 $session = Yii::$app->session; $model = AccessToken::findOne(array('tokenid' => $accessToken->tokenid)); $session->set('user', $model->user); } return $accessToken; }