public function login()
 {
     $username = $this->inputRaw('username');
     $password = $this->inputRaw('password');
     try {
         $user = User::findByCredentials($username, $password);
     } catch (\Exception $e) {
         return $this->failResponse('Invalid Credentials', $statusCode = 401);
     }
     if ($user->hasValidTokenAlive()) {
         $user->refreshToken();
     } else {
         $user->writeToken();
     }
     return $this->jsonResponse(['status' => 'success', 'code' => '200', 'message' => 'Welcome', 'data' => ['token' => $user->token, 'ttl' => $user->ttl->toISO8601String()]]);
 }