docs = $docService; if (file_exists(env('FOLKS_PATH'))) { $this->folks = json_decode(file_get_contents(env('FOLKS_PATH')), true); } else { $this->folks = json_decode(file_get_contents(env('FIPAMO_INIT') . '/folks-template.json'), true); } } public function getAll() { return $this->$folks; } public function getById($id) { $member = find($this->folks, ['id' => $id]); return $member; } public function getByHandle($handle) { $member = find($this->folks, ['handle' => $handle]); return $member; } public function delete($id) { //delete member stuff } public function create($member) { //make new member } public function update($member) { $index = findIndex($this->folks, ['id' => $member->id]); $this->folks[$index]['handle'] = $member->handle; $this->folks[$index]['email'] = $member->email; if (isset($member->avatar)) { $this->folks[$index]['avatar'] = $member->avatar; } $this->folks[$index]['updated'] = Carbon::now(); //save new folks file $this->docs::writeSettings($this->folks, env('FOLKS_PATH')); //update session session()->put('member', $this->folks[$index]); } public function auth($request) { //suth stuff $folks = $this->folks; $found = $this->getByHandle($request->handle); if ($found) { if (password_verify($request->password, $found['password'])) { $member = [ 'id' => $found['id'], 'handle' => $found['handle'], 'email' => $found['email'], 'role' => $found['role'], 'avatar' => $found['avatar'], 'key' => $found['key'], 'secret' => $found['secret'], ]; $token = Token::create( $found['key'], $found['secret'], time() + 3600, 'localhost' ); //expires in an hour $form_token = md5(uniqid(microtime(), true)); $request->session()->put('member', $member); $request->session()->put('token', $token); $request->session()->put('form_token', $form_token); return ['status' => true, 'message' => 'HEY WELCOME BACK']; //DO SESSION STUFF } else { return ['status' => false, 'message' => 'CHECK THAT PASSWORD']; //RETURN ERROR } } else { return ['status' => false, 'message' => 'CHECK THAT HANDLE']; } } public static function status() { if (session('member') !== null) { if ( Token::validate(session('token'), session('member')['secret']) && Token::validateExpiration(session('token'), session('member')['secret']) ) { return true; } else { return false; } } else { return false; } } }