error */ if( !is_array($fetched_user) || !isset($fetched_user['id_user']) || !is_numeric($fetched_user['id_user']) ) return ['connected' => false]; /* (3) Extract @id_user */ $id_user = intval( $fetched_user['id_user'] ); /* (3) Check password for user ---------------------------------------------------------*/ /* (1) Check password */ $valid_pass = Repo::request('user', 'checkPassword', $id_user, $password); /* (2) If wrong password -> error */ if( !$valid_pass ) return ['connected' => false]; /* (4) Update session to be connected ---------------------------------------------------------*/ /* (1) Update session */ $_SESSION['TOKEN'] = 'u'.$fetched_user['token']; $_SESSION['WS'] = true; // to tell websocket we are connected new AuthSystemDefault; /* (2) Return status */ return ['connected' => true]; } public function POST_signup($argv){ extract($argv); /* (1) Logout by default ---------------------------------------------------------*/ $_SESSION['TOKEN'] = []; /* (2) Check if @username is unique ---------------------------------------------------------*/ /* (1) Fetch by username */ $fetched_user = Repo::request('user', 'getByUsername', $username); /* (2) If found -> error */ if( $fetched_user !== false ) return ['error' => new Error(Err::AlreadyExists)]; /* (3) Check if @mail is unique ---------------------------------------------------------*/ /* (1) Fetch by mail */ $fetched_user = Repo::request('user', 'getByMail', $mail); /* (2) If found -> error */ if( $fetched_user !== false ) return ['error' => new Error(Err::AlreadyExists)]; /* (4) Create user ---------------------------------------------------------*/ /* (1) Create repo request */ $id_created = Repo::request('user', 'create', $username, $mail, $password); /* (2) If error -> dispatch */ if( $id_created === false ) return [ 'error' => new Error(Err::RepoError) ]; /* (3) Return status */ return [ 'registered' => $id_created ]; } public function DELETE_logout(){ $_SESSION = []; } }