Exemplo n.º 1
0
 public function actionLogin()
 {
     /* @var $user \yii\web\User */
     //TODO: GET show view, POST login
     //TODO: yii negotiator
     //\Yii::$app->response->format = Response::FORMAT_JSON;
     $resp = new \stdClass();
     $resp->result = false;
     try {
         $username = \Yii::$app->request->post('username');
         $password = \Yii::$app->request->post('password');
         $remember_me = (bool) \Yii::$app->request->post('remember-me') ? 3600 * 24 * 30 : 0;
         $user = \Yii::$app->user;
         $identity = Users::findIdentity($username);
         if (empty($identity) || !$identity instanceof \yii\web\IdentityInterface) {
             throw new \yii\base\InvalidValueException('wrong login or password', 1);
         }
         if (!$identity->validatePassword($password)) {
             //var_dump($password);
             throw new \yii\base\InvalidValueException('wrong login or password', 2);
         }
         if (!$user->login($identity, $remember_me)) {
             throw new \yii\base\InvalidValueException('server error. please try later', 3);
         }
         //success
         $resp->result = true;
     } catch (\Exception $e) {
         //TODO: mitiple errors support
         $resp->data = $e->getMessage();
     }
     return json_encode($resp);
 }
Exemplo n.º 2
0
 public function test_finds()
 {
     $user = new Users();
     $user->username = '******';
     $user->password = '******';
     $user->access_token = 'token';
     $user->save();
     $user2 = new Users();
     $user2->username = '******';
     $user2->password = '******';
     $user2->access_token = 'token2';
     $user2->save();
     $this->assertEquals($user->username, $user->getId());
     $this->assertEquals($user->username, Users::findIdentity($user->username)->username);
     $this->assertEquals($user->username, Users::getUserByUsername($user->username)->username);
     $this->assertEquals($user->access_token, Users::findIdentityByAccessToken($user->access_token)->access_token);
 }